CVE-2024-29154
📋 TL;DR
This vulnerability allows cross-site scripting (XSS) attacks in danielmiessler fabric versions through 1.3.0 due to improper handling of innerHTML in the installer/client/gui/static/js/index.js file. Attackers can inject malicious scripts that execute in users' browsers when they interact with the application. Anyone using affected versions of fabric is potentially vulnerable.
💻 Affected Systems
- danielmiessler fabric
📦 What is this software?
Fabric by Danielmiessler
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal session cookies, perform actions as authenticated users, redirect users to malicious sites, or install malware through the victim's browser.
Likely Case
Attackers could steal user credentials, session tokens, or perform limited actions within the application context.
If Mitigated
With proper input validation and output encoding, the risk is significantly reduced to minimal impact.
🎯 Exploit Status
XSS vulnerabilities typically have low exploitation complexity and can be exploited without authentication if the vulnerable component is accessible.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.3.1 or later
Vendor Advisory: https://github.com/danielmiessler/fabric/security/advisories
Restart Required: Yes
Instructions:
1. Update fabric to version 1.3.1 or later using pip: pip install --upgrade fabric
2. Restart any running fabric services
3. Verify the update was successful
🔧 Temporary Workarounds
Implement Content Security Policy
allAdd a Content Security Policy header to restrict script execution
Add 'Content-Security-Policy: script-src 'self'' to HTTP headers
Input Validation Filter
allImplement server-side input validation to sanitize user inputs
🧯 If You Can't Patch
- Restrict access to the fabric web interface using network segmentation or firewall rules
- Implement a web application firewall (WAF) with XSS protection rules
🔍 How to Verify
Check if Vulnerable:
Check fabric version: pip show fabric | grep Version
Check Version:
pip show fabric | grep Version
Verify Fix Applied:
Verify version is 1.3.1 or later and test XSS payloads no longer execute
📡 Detection & Monitoring
Log Indicators:
- Unusual JavaScript payloads in HTTP requests
- Multiple failed XSS attempts
Network Indicators:
- Suspicious script tags or JavaScript in HTTP traffic to fabric endpoints
SIEM Query:
http.url:*fabric* AND (http.request_body:*script* OR http.request_body:*javascript*)