An authenticated HTTPS origin can supply an HSTS max-age value that the
parser accepts, but time serialization later fails to process. On 64-bit
systems, extreme max-age values compute an absolute expiry within standard
time integer limits that exceeds calendar time structure bounds. During cache
saves, the original HSTS file is truncated before writing a temporary
replacement; when serialization fails, the temporary file is deleted, leaving
an empty or partial cache. Because the save error is silently ignored during
cleanup, curl exits successfully despite the data loss.
{
"CWE": {
"desc": "Information Exposure Through Sent Data",
"id": "CWE-201"
},
"URL": "https://curl.se/docs/CVE-2026-87863.json",
"affects": "both",
"issue": "https://hackerone.com/reports/3972373",
"last_affected": "8.22.0",
"package": "curl",
"severity": "Low",
"www": "https://curl.se/docs/CVE-2026-87863.html"
}"https://curl.se/docs/CURL-CVE-2026-87863.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "130716959620459958849575900228284574811",
"length": 1254
},
"id": "CURL-CVE-2026-87863-0af9106b",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/08d50a791b3197a3d0a4fc2f778e243f5501c67e",
"target": {
"file": "lib/hsts.c",
"function": "Curl_hsts_save"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "235220928436855776497358132967032028485",
"length": 551
},
"id": "CURL-CVE-2026-87863-3febfe18",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/08d50a791b3197a3d0a4fc2f778e243f5501c67e",
"target": {
"file": "lib/hsts.c",
"function": "hsts_out"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"205178578720782544809538152978818913426",
"312232802905811482719156969745540983201",
"52024235586103044253478741981586349101",
"236670464565528813889296099301380617367",
"201698613823396007419677165466361661252",
"203881905030976409994234000584428003258",
"305083743043698032842437395492136388136",
"63780816154108311112287374066842202840",
"179606117275867453032594657296301292822",
"151193636400008653907531872018138587740",
"282941625750189441312039289710905698168",
"17557605789080997805808072397361704561",
"196264846599574655196860071710318067926",
"27093778555667850506274057291081042750",
"158079286993560261561536269313577311136",
"81855407285355430608706587545584654329",
"297366706571649341920083432355046071941",
"209662935018479864666392652983395213507",
"76164040816556869285329144294969932364",
"128562461603798141764926661314467138368",
"233917221121809993590827497351614816244",
"163877588095670458562943243143001700315",
"8334112328983392380704498149061936935",
"334545719184409274706574087080948536627",
"297596397871360914227453585870758356407",
"307050522064000661156627064896784888289",
"271841489615894496984986059155513402280",
"254925658198740085909971059161145530467",
"271276513996856353440083033981125880048",
"311554679248225155931659386580554936031",
"243788162621962468038868913053961555140",
"311036978655299673885270247871030631148",
"18713085383729949029225011990466382721",
"4660003201131665093028710170592646961"
],
"threshold": 0.9
},
"id": "CURL-CVE-2026-87863-4e8b645f",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/08d50a791b3197a3d0a4fc2f778e243f5501c67e",
"target": {
"file": "lib/hsts.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "96308156130170861737261897291227074129",
"length": 1674
},
"id": "CURL-CVE-2026-87863-d434713a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/08d50a791b3197a3d0a4fc2f778e243f5501c67e",
"target": {
"file": "lib/hsts.c",
"function": "Curl_hsts_parse"
}
}
]
"2026-10-14T19:02:56Z"