CVE-2024-38521

8.8 HIGH

📋 TL;DR

Hush Line versions before 0.1.0 contain a stored cross-site scripting (XSS) vulnerability in the Inbox functionality. Attackers can inject malicious scripts that execute when victims view messages, potentially stealing session cookies or performing actions as the user. All organizations and individuals running vulnerable Hush Line instances are affected.

💻 Affected Systems

Products:
  • Hush Line
Versions: All versions before 0.1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default configuration when using the Inbox feature. Any Hush Line instance with the vulnerable code is affected regardless of deployment method.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator session cookies, gain full control of the Hush Line instance, access all submitted tips, and potentially pivot to internal systems if the instance is integrated with other services.

🟠

Likely Case

Attackers inject malicious JavaScript to steal session cookies or credentials from users viewing messages in the Inbox, leading to unauthorized access to the Hush Line interface and potentially compromising the anonymity of tip submissions.

🟢

If Mitigated

With proper input validation and output encoding, the malicious scripts would be rendered harmless as text rather than executable code.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires submitting a tip with malicious JavaScript payload, but the attacker needs to trick a user into viewing the malicious message. The vulnerability is straightforward to exploit once discovered.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.1.0

Vendor Advisory: https://github.com/scidsg/hushline/security/advisories/GHSA-4v8c-r6h2-fhh3

Restart Required: Yes

Instructions:

1. Backup your current Hush Line instance and data. 2. Update to version 0.1.0 or later using your deployment method (Docker, source, etc.). 3. Restart the Hush Line service. 4. Verify the update was successful by checking the version.

🔧 Temporary Workarounds

Disable Inbox Access

all

Temporarily restrict access to the Inbox interface while awaiting patching

# Configure web server to block /inbox paths
# Use firewall rules to restrict access to Inbox endpoints

Content Security Policy

all

Implement strict Content Security Policy headers to mitigate XSS impact

# Add to web server config: Content-Security-Policy: default-src 'self'; script-src 'self'

🧯 If You Can't Patch

  • Implement WAF rules to detect and block XSS payloads in incoming requests
  • Monitor Inbox access logs for suspicious patterns and implement alerting

🔍 How to Verify

Check if Vulnerable:

Check if your Hush Line version is below 0.1.0. Review code for use of 'safe' filter in Jinja2 templates for Inbox message display.

Check Version:

Check the version in the web interface footer or run: docker inspect hushline | grep -i version

Verify Fix Applied:

After updating to 0.1.0+, verify that message content is properly HTML-encoded when displayed in the Inbox. Test with basic XSS payloads like <script>alert('test')</script>.

📡 Detection & Monitoring

Log Indicators:

  • Unusual patterns in tip submissions containing script tags or JavaScript code
  • Multiple failed login attempts following Inbox access

Network Indicators:

  • HTTP requests containing XSS payload patterns to tip submission endpoints
  • Outbound connections to suspicious domains following Inbox access

SIEM Query:

source="hushline.log" AND ("<script" OR "javascript:" OR "onerror=" OR "onload=")

🔗 References

📤 Share & Export