CVE-2024-38521
📋 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
- Hush Line
📦 What is this software?
Hush Line by Hushline
⚠️ 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.
🎯 Exploit Status
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
allTemporarily 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
allImplement 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=")