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.
{ "URL": "https://curl.se/docs/CVE-2025-5399.json", "award": { "currency": "USD", "amount": "505" }, "last_affected": "8.14.0", "affects": "lib", "issue": "https://hackerone.com/reports/3168039", "www": "https://curl.se/docs/CVE-2025-5399.html", "CWE": { "desc": "Loop with Unreachable Exit Condition ('Infinite Loop')", "id": "CWE-835" }, "package": "curl", "severity": "Low" }
{ "vanir_signatures": [ { "source": "https://github.com/curl/curl.git/commit/d1145df24de8f80e6b167fbc4f28b86bcd0c6832", "signature_version": "v1", "digest": { "length": 3224.0, "function_hash": "246136244445171702857622217714330817191" }, "target": { "file": "lib/ws.c", "function": "curl_ws_send" }, "deprecated": false, "id": "CURL-CVE-2025-5399-5c67c32b", "signature_type": "Function" }, { "source": "https://github.com/curl/curl.git/commit/d1145df24de8f80e6b167fbc4f28b86bcd0c6832", "signature_version": "v1", "digest": { "threshold": 0.9, "line_hashes": [ "205927081312732682779716038169572163720", "200262896965368108989613347175457420328", "191061302736480628505507033467536312329", "305720063265502571742731976555669608845" ] }, "target": { "file": "lib/ws.c" }, "deprecated": false, "id": "CURL-CVE-2025-5399-7940916e", "signature_type": "Line" } ] }