Successfully using libcurl to do a transfer to a specific HTTP origin
(hostA) with Digest authentication and then changing the origin to a
different one (hostB) for a second transfer, reusing the same handle, makes
libcurl wrongly pass on the Authorization: header field meant for hostA,
to hostB.
{
"package": "curl",
"URL": "https://curl.se/docs/CVE-2026-11856.json",
"last_affected": "8.20.0",
"issue": "https://hackerone.com/reports/3793260",
"affects": "lib",
"severity": "Medium",
"www": "https://curl.se/docs/CVE-2026-11856.html",
"CWE": {
"desc": "Authentication Bypass by Capture-replay",
"id": "CWE-294"
}
}"https://curl.se/docs/CURL-CVE-2026-11856.json"
"2026-06-24T08:07:07Z"
[
{
"target": {
"file": "lib/vauth/digest.c"
},
"id": "CURL-CVE-2026-11856-03c6adfc",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"72468393350518143134204758224881668841",
"60073479596154811849922764497733642287",
"256147216265901341340017032923259907120",
"119614045470514872127058270568012208473"
]
},
"signature_version": "v1"
},
{
"target": {
"file": "lib/http_digest.c"
},
"id": "CURL-CVE-2026-11856-3e2a1e34",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"164204164563672603101704047603045445358",
"315365079544018725974853273504753167301",
"73108907385898325704232685031305948653",
"32084135395173408664347464202584010472"
]
},
"signature_version": "v1"
},
{
"target": {
"file": "lib/http_digest.c",
"function": "Curl_output_digest"
},
"id": "CURL-CVE-2026-11856-56545289",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1066.0,
"function_hash": "118656286641636339575039176885280000777"
},
"signature_version": "v1"
},
{
"target": {
"file": "lib/urldata.h"
},
"id": "CURL-CVE-2026-11856-598c47cd",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"63917068056463326315122996636294873575",
"276170765844152756272618069305043058488",
"169424575069735909212067418632017288504",
"243874813925842655498566283328592077957",
"141623004244702485986868354992268940282",
"263980355106232861814426512928627163418",
"224487920238237756663718970455433201536",
"62983878650870836478269198489397934062",
"31199387498090313881099271973340596047"
]
},
"signature_version": "v1"
},
{
"target": {
"file": "lib/vauth/digest_sspi.c"
},
"id": "CURL-CVE-2026-11856-6ac23657",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"179089377150793739573173530912117096637",
"209054385039078862952672936161830123808",
"183211453477588361730059064127128129848"
]
},
"signature_version": "v1"
},
{
"target": {
"file": "lib/vauth/digest.c",
"function": "Curl_auth_digest_cleanup"
},
"id": "CURL-CVE-2026-11856-c95f0fc7",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 318.0,
"function_hash": "73972979594284121042835701929183217406"
},
"signature_version": "v1"
},
{
"target": {
"file": "lib/vauth/digest_sspi.c",
"function": "Curl_auth_digest_cleanup"
},
"id": "CURL-CVE-2026-11856-dffad452",
"source": "https://github.com/curl/curl.git/commit/5c6b4880357ab3e72967c1c45cae0f96ffabc535",
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 270.0,
"function_hash": "94729404215738391218808497679631866932"
},
"signature_version": "v1"
}
]