{"id":"CVE-2026-87863","title":"HSTS response erases persisted entries","summary":"An authenticated HTTPS origin can supply an HSTS `max-age` value that the\nparser accepts, but time serialization later fails to process. On 64-bit\nsystems, extreme max-age values compute an absolute expiry within standard\ntime integer li…","severity":"none","cwe":["CWE-201"],"vendor":"curl","product":"curl","affected":["curl >= 8.22.0 <= 8.22.0","curl >= 8.21.0 <= 8.21.0","curl >= 8.20.0 <= 8.20.0","curl >= 8.19.0 <= 8.19.0","curl >= 8.18.0 <= 8.18.0","curl >= 8.17.0 <= 8.17.0","curl >= 8.16.0 <= 8.16.0","curl >= 8.15.0 <= 8.15.0","curl >= 8.14.1 <= 8.14.1","curl >= 8.14.0 <= 8.14.0","curl >= 8.13.0 <= 8.13.0","curl >= 8.12.1 <= 8.12.1","curl >= 8.12.0 <= 8.12.0","curl >= 8.11.1 <= 8.11.1","curl >= 8.11.0 <= 8.11.0","curl >= 8.10.1 <= 8.10.1","curl >= 8.10.0 <= 8.10.0","curl >= 8.9.1 <= 8.9.1","curl >= 8.9.0 <= 8.9.0","curl >= 8.8.0 <= 8.8.0","curl >= 8.7.1 <= 8.7.1","curl >= 8.7.0 <= 8.7.0","curl >= 8.6.0 <= 8.6.0","curl >= 8.5.0 <= 8.5.0","curl >= 8.4.0 <= 8.4.0","curl >= 8.3.0 <= 8.3.0","curl >= 8.2.1 <= 8.2.1","curl >= 8.2.0 <= 8.2.0"],"published":"2026-10-20","updated":"2026-10-20","sourceUpdated":"2026-10-20T20:13:22.379Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-87863","references":[{"url":"https://curl.se/docs/CVE-2026-87863.json","label":"json"},{"url":"https://curl.se/docs/CVE-2026-87863.html","label":"www"},{"url":"https://hackerone.com/reports/3972373","label":"issue"}],"tags":["cve.org"],"ingestedAt":"2026-10-20T21:19:21.286Z","slug":"CVE-2026-87863","body":"## Overview\n\nAn authenticated HTTPS origin can supply an HSTS `max-age` value that the\nparser accepts, but time serialization later fails to process. On 64-bit\nsystems, extreme max-age values compute an absolute expiry within standard\ntime integer limits that exceeds calendar time structure bounds. During cache\nsaves, the original HSTS file is truncated before writing a temporary\nreplacement; when serialization fails, the temporary file is deleted, leaving\nan empty or partial cache. Because the save error is silently ignored during\ncleanup, curl exits successfully despite the data loss.\n\n## Affected\n\n- `curl >= 8.22.0 <= 8.22.0`\n- `curl >= 8.21.0 <= 8.21.0`\n- `curl >= 8.20.0 <= 8.20.0`\n- `curl >= 8.19.0 <= 8.19.0`\n- `curl >= 8.18.0 <= 8.18.0`\n- `curl >= 8.17.0 <= 8.17.0`\n- `curl >= 8.16.0 <= 8.16.0`\n- `curl >= 8.15.0 <= 8.15.0`\n- `curl >= 8.14.1 <= 8.14.1`\n- `curl >= 8.14.0 <= 8.14.0`\n- `curl >= 8.13.0 <= 8.13.0`\n- `curl >= 8.12.1 <= 8.12.1`\n- `curl >= 8.12.0 <= 8.12.0`\n- `curl >= 8.11.1 <= 8.11.1`\n- `curl >= 8.11.0 <= 8.11.0`\n- `curl >= 8.10.1 <= 8.10.1`\n- `curl >= 8.10.0 <= 8.10.0`\n- `curl >= 8.9.1 <= 8.9.1`\n- `curl >= 8.9.0 <= 8.9.0`\n- `curl >= 8.8.0 <= 8.8.0`\n- `curl >= 8.7.1 <= 8.7.1`\n- `curl >= 8.7.0 <= 8.7.0`\n- `curl >= 8.6.0 <= 8.6.0`\n- `curl >= 8.5.0 <= 8.5.0`\n- `curl >= 8.4.0 <= 8.4.0`\n- `curl >= 8.3.0 <= 8.3.0`\n- `curl >= 8.2.1 <= 8.2.1`\n- `curl >= 8.2.0 <= 8.2.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}