curl's WebSocket code did not update the 32-bit mask pattern for each new outgoing frame as the specification says. Instead it used a fixed mask that persisted and was used throughout the entire connection. A predictable mask pattern allows for a malicious server to induce traffic between the two communicating parties that could be interpreted by an involved proxy (configured or transparent) as genuine, real, HTTP traffic with content and thereby poison its cache. That cached poisoned content could then be served to all users of that proxy.
Fix
Patch, vendor advisory and mitigation references on NVD 3
- https://curl.se/docs/CVE-2025-10148.html Patch, Vendor Advisory
- https://curl.se/docs/CVE-2025-10148.json Vendor Advisory
- http://www.openwall.com/lists/oss-security/2025/09/10/2 Mailing List, Patch, Third Party Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 5.3 · haxxNVD modified 2026-10-19 17:10
Affected (CPE criteria) 1
cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*
References 6
- https://curl.se/docs/CVE-2025-10148.html Patch, Vendor Advisory
- https://curl.se/docs/CVE-2025-10148.json Vendor Advisory
- https://hackerone.com/reports/3330839 Issue Tracking, Third Party Advisory
- http://www.openwall.com/lists/oss-security/2025/09/10/2 Mailing List, Patch, Third Party Advisory
- http://www.openwall.com/lists/oss-security/2025/09/10/3 Mailing List, Third Party Advisory
- http://www.openwall.com/lists/oss-security/2025/09/10/4 Mailing List, Third Party Advisory