libcurl's TFTP state machine fails to validate state transitions against the
requested transfer direction, accepting opening server responses for both
reads and writes interchangeably. A malicious TFTP server can respond to a
download request in a way that forces the client into transmit mode, prompting
libcurl to consume and transmit data from the handle's persistent
CURLOPT_READDATA pointer - including data remaining from unrelated prior
operations, such as an HTTP POST request executed on a reused handle.
{
"CWE": {
"desc": "Exposure of Sensitive Information to an Unauthorized Actor",
"id": "CWE-200"
},
"URL": "https://curl.se/docs/CVE-2026-92389.json",
"affects": "lib",
"issue": "https://hackerone.com/reports/4022568",
"last_affected": "8.22.0",
"package": "curl",
"severity": "Low",
"www": "https://curl.se/docs/CVE-2026-92389.html"
}"https://curl.se/docs/CURL-CVE-2026-92389.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "126715975532720111517959535471988949594",
"length": 3057
},
"id": "CURL-CVE-2026-92389-178dd8b6",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/63dd390fab905a239a97e2700532929343ebc4e9",
"target": {
"file": "lib/tftp.c",
"function": "tftp_send_first"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "34361965089964356088835215325594431379",
"length": 3133
},
"id": "CURL-CVE-2026-92389-27a716f8",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/63dd390fab905a239a97e2700532929343ebc4e9",
"target": {
"file": "lib/tftp.c",
"function": "tftp_tx"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"213941317550669709918500911202531654513",
"35863030846702792639856607557407963268",
"178703773221645595706614520454913989288",
"293691376477657943694425699409478412856",
"122942944211781658853321733045433026828",
"237224437274817058680788368080529376881",
"178387386025722784682918500492103308442",
"57550727752228984316738521433390636273",
"118571915241130250038855293273996087763",
"169248890489335299018722612150426794081",
"69787676918967109686887743133164846997",
"109714572990670583593454130630114093016",
"48309513796876514570774305896511421520",
"109621477506121803007201949863319434574"
],
"threshold": 0.9
},
"id": "CURL-CVE-2026-92389-69b29f4c",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/63dd390fab905a239a97e2700532929343ebc4e9",
"target": {
"file": "lib/tftp.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "158624474960533623644373297270543747832",
"length": 1941
},
"id": "CURL-CVE-2026-92389-c91a0d38",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/63dd390fab905a239a97e2700532929343ebc4e9",
"target": {
"file": "lib/tftp.c",
"function": "tftp_receive_packet"
}
}
]
"2026-10-14T19:02:58Z"