CVE-2024-11603
📋 TL;DR
A Server-Side Request Forgery (SSRF) vulnerability in lm-sys/fastchat version 0.2.36 allows attackers to send crafted requests through the /queue/join? endpoint, potentially accessing internal networks or AWS metadata. This affects anyone running vulnerable versions of fastchat, particularly those with internet-facing instances.
💻 Affected Systems
- lm-sys/fastchat
📦 What is this software?
Fastchat by Lm Sys
⚠️ Risk & Real-World Impact
Worst Case
Complete compromise of internal network resources, AWS credential theft via metadata endpoint, and lateral movement to other systems.
Likely Case
Unauthorized access to internal services, data exfiltration from internal APIs, and potential AWS metadata exposure.
If Mitigated
Limited impact with proper network segmentation and egress filtering, though some internal service enumeration may still occur.
🎯 Exploit Status
Exploitation requires crafting specific requests to the vulnerable endpoint. No public exploit code is available at this time.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.2.37 or later
Vendor Advisory: https://huntr.com/bounties/89f1158d-4a75-4000-a1bd-f82dd1a62bff
Restart Required: No
Instructions:
1. Update fastchat to version 0.2.37 or later using pip: pip install --upgrade fschat>=0.2.37
2. Verify the update completed successfully
3. No service restart required for pip installations
🔧 Temporary Workarounds
Network Segmentation
allRestrict outbound network access from the fastchat server to prevent SSRF attacks from reaching internal resources.
Endpoint Restriction
allBlock or restrict access to the /queue/join endpoint if not required for functionality.
🧯 If You Can't Patch
- Implement strict egress filtering to block outbound requests from the fastchat server to internal networks and AWS metadata endpoints.
- Deploy a web application firewall (WAF) with SSRF protection rules to detect and block malicious requests.
🔍 How to Verify
Check if Vulnerable:
Check if fastchat version is 0.2.36 by examining package version or running: python -c "import fschat; print(fschat.__version__)"
Check Version:
python -c "import fschat; print(fschat.__version__)"
Verify Fix Applied:
Verify fastchat version is 0.2.37 or higher using the same command. Test the /queue/join endpoint with controlled SSRF payloads to confirm remediation.
📡 Detection & Monitoring
Log Indicators:
- Unusual outbound requests from fastchat server to internal IP ranges
- Requests to AWS metadata endpoint (169.254.169.254)
- Abnormal patterns in /queue/join endpoint access logs
Network Indicators:
- Outbound connections from fastchat server to unexpected internal services
- Requests to cloud metadata services from application servers
SIEM Query:
source="fastchat" AND (url_path="/queue/join" AND (dst_ip=169.254.169.254 OR dst_ip IN [10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16]))