Due to a mistake in libcurl's WebSocket code, a malicious server can send a particularly crafted packet which makes libcurl get trapped in an endless busy-loop.
There is no other way for the application to escape or exit this loop other than killing the thread/process.
This might be used to DoS libcurl-using application.
{ "www": "https://curl.se/docs/CVE-2025-5399.html", "package": "curl", "CWE": { "id": "CWE-835", "desc": "Loop with Unreachable Exit Condition ('Infinite Loop')" }, "affects": "lib", "severity": "Low", "last_affected": "8.14.0", "award": { "amount": "505", "currency": "USD" }, "issue": "https://hackerone.com/reports/3168039", "URL": "https://curl.se/docs/CVE-2025-5399.json" }
{ "vanir_signatures": [ { "id": "CURL-CVE-2025-5399-5c67c32b", "digest": { "length": 3224.0, "function_hash": "246136244445171702857622217714330817191" }, "source": "https://github.com/curl/curl.git/commit/d1145df24de8f80e6b167fbc4f28b86bcd0c6832", "signature_version": "v1", "target": { "function": "curl_ws_send", "file": "lib/ws.c" }, "deprecated": false, "signature_type": "Function" }, { "id": "CURL-CVE-2025-5399-7940916e", "digest": { "line_hashes": [ "205927081312732682779716038169572163720", "200262896965368108989613347175457420328", "191061302736480628505507033467536312329", "305720063265502571742731976555669608845" ], "threshold": 0.9 }, "source": "https://github.com/curl/curl.git/commit/d1145df24de8f80e6b167fbc4f28b86bcd0c6832", "signature_version": "v1", "target": { "file": "lib/ws.c" }, "deprecated": false, "signature_type": "Line" } ] }