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