CVE-2025-10148
📋 TL;DR
A vulnerability in curl's WebSocket implementation uses a fixed 32-bit mask pattern for all outgoing frames instead of generating new random masks per frame as required by the WebSocket specification. This allows malicious servers to manipulate traffic that could be interpreted by proxies as legitimate HTTP content, potentially poisoning proxy caches. Affected systems include any using vulnerable curl versions with WebSocket functionality enabled.
💻 Affected Systems
- curl
📦 What is this software?
Curl by Haxx
curl is a command-line tool and library for transferring data with URLs. It supports numerous protocols including HTTP, HTTPS, FTP, and more, making it essential for API testing, web scraping, and automated data transfers.
Learn more about Curl →⚠️ Risk & Real-World Impact
Worst Case
Malicious servers poison proxy caches with arbitrary content that gets served to all users of that proxy, enabling widespread content manipulation and potential credential theft.
Likely Case
Targeted cache poisoning attacks against specific organizations using vulnerable curl versions with transparent proxies, leading to content manipulation for limited user groups.
If Mitigated
Minimal impact if proxies validate WebSocket traffic properly or if vulnerable curl versions are not used with WebSocket functionality.
🎯 Exploit Status
Exploitation requires a malicious WebSocket server and specific proxy configurations; not trivial but feasible for determined attackers.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: curl 8.10.0
Vendor Advisory: https://curl.se/docs/CVE-2025-10148.html
Restart Required: No
Instructions:
1. Download curl 8.10.0 or later from https://curl.se/download.html
2. Compile and install according to your platform's instructions
3. Verify installation with 'curl --version'
🔧 Temporary Workarounds
Disable WebSocket Support
allDisable WebSocket functionality in curl if not required
Recompile curl with --disable-websockets configure option
🧯 If You Can't Patch
- Configure proxies to reject or properly validate WebSocket traffic
- Use alternative WebSocket clients or libraries instead of curl's WebSocket implementation
🔍 How to Verify
Check if Vulnerable:
Run 'curl --version' and check if version is between 8.8.0 and 8.9.0 inclusive
Check Version:
curl --version | head -1
Verify Fix Applied:
Run 'curl --version' and confirm version is 8.10.0 or higher
📡 Detection & Monitoring
Log Indicators:
- Unusual WebSocket traffic patterns
- Proxy cache entries with unexpected content
Network Indicators:
- WebSocket traffic with predictable mask patterns
- Unexpected HTTP responses from proxy caches
SIEM Query:
WebSocket traffic analysis showing consistent mask values across multiple frames