When curl is built with GnuTLS, a malicious WebSocket server can make curl
send memory past its send buffer. This is due to an out of bounds read
following when gnutls_record_send() returns a number of bytes sent greater
than the number of bytes it was given to send. GnuTLS does that after a
blocked send.
{
"CWE": {
"desc": "Buffer Over-read",
"id": "CWE-126"
},
"URL": "https://curl.se/docs/CVE-2026-107928.json",
"affects": "both",
"issue": "https://hackerone.com/reports/4099194",
"last_affected": "8.22.0",
"package": "curl",
"severity": "Low",
"www": "https://curl.se/docs/CVE-2026-107928.html"
}"https://curl.se/docs/CURL-CVE-2026-107928.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "17004293909367189618465785831238528729",
"length": 877
},
"id": "CURL-CVE-2026-107928-29f91023",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/64fb3e7a7b116f690966054f281624152d4a7651",
"target": {
"file": "lib/vtls/gtls.c",
"function": "gtls_send"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"237152868269477282733457753401809078536",
"310007984379778202135485959311979072715",
"331851364076556933562923024774740634706",
"25065144459799342202251174170785250709",
"159052280036624249758923391343624644361",
"292029669852123213529518847703179921945"
],
"threshold": 0.9
},
"id": "CURL-CVE-2026-107928-7be05e8d",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/64fb3e7a7b116f690966054f281624152d4a7651",
"target": {
"file": "lib/vtls/gtls.c"
}
}
]
"2026-10-14T07:04:24Z"