Successfully using libcurl to do a transfer over a specific HTTP proxy
(proxyA) with Digest authentication and then changing the proxy host to
a second one (proxyB) for a second transfer, reusing the same handle, makes
libcurl wrongly pass on the Proxy-Authorization: header field meant for
proxyA, to proxyB.
{
"last_affected": "8.19.0",
"package": "curl",
"URL": "https://curl.se/docs/CVE-2026-7168.json",
"severity": "Medium",
"issue": "https://hackerone.com/reports/3697719",
"www": "https://curl.se/docs/CVE-2026-7168.html",
"CWE": {
"desc": "Authentication Bypass by Capture-replay",
"id": "CWE-294"
},
"affects": "lib"
}"https://curl.se/docs/CURL-CVE-2026-7168.json"
[
{
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"digest": {
"length": 3175.0,
"function_hash": "61091634436092434602550532891846171597"
},
"source": "https://github.com/curl/curl.git/commit/c1cfdf59acbaf9504c4578d4cf56cdd7c8594507",
"target": {
"function": "setopt_cptr_proxy",
"file": "lib/setopt.c"
},
"id": "CURL-CVE-2026-7168-2df49b29"
},
{
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"digest": {
"line_hashes": [
"289191531952819915542830893291096787737",
"59095837547675122187763704309080974731",
"167006278873572358673810952726165764949",
"224868766777062336296023368828860473619",
"333014249335962099969630568066425036457",
"250872193381835103837860955535302533178",
"66613185124136658966388644022618296204",
"16789802708858953211452692390131809950",
"193982464444589644999129290801954628985",
"266841901464165558368188423363496994960",
"335292972306276611749196570122101149273",
"130847580014203461093210467035637337697"
],
"threshold": 0.9
},
"source": "https://github.com/curl/curl.git/commit/c1cfdf59acbaf9504c4578d4cf56cdd7c8594507",
"target": {
"file": "lib/setopt.c"
},
"id": "CURL-CVE-2026-7168-4f9a4c84"
}
]
"2026-04-29T08:02:59Z"