CVE-2024-29154

7.4 HIGH

📋 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

Products:
  • danielmiessler fabric
Versions: through 1.3.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the web interface component of fabric.

📦 What is this software?

⚠️ 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.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

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

all

Add a Content Security Policy header to restrict script execution

Add 'Content-Security-Policy: script-src 'self'' to HTTP headers

Input Validation Filter

all

Implement 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*)

🔗 References

📤 Share & Export