{"id":"CVE-2026-13697","state":"PUBLISHED","title":"undici vulnerable to cross-user information disclosure and parse-time crash via degenerate private cache directives","description":"undici's cache interceptor mishandles malformed Cache-Control private directives. In undici 7.0.0 up to before 7.29.0 and 8.0.0 up to before 8.9.0, a response carrying a degenerate qualified private directive, such as private set to an empty value, can be stored in the default shared cache and later served to a different caller with the same cache key, disclosing private response bodies and headers including Set-Cookie. Separately, a Cache-Control header that combines an unqualified private directive with a qualified one triggers an uncaught TypeError in the cache-control parser, which rejects the request and, depending on the consumer's error handling, can terminate the process. Both issues affect applications using the cache interceptor in shared mode, including the default configuration. The issues are fixed in undici 7.29.0 and 8.9.0.","publishedAt":"2026-07-29T16:32:39.519Z","updatedAt":"2026-07-29T17:53:57.335Z","severity":{"score":7.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H","source":"openjs"},"assigner":"openjs","products":["undici undici"],"affected":[{"vendor":"undici","product":"undici","packageURL":"pkg:npm/undici","defaultStatus":"unaffected","versions":[{"version":"7.0.0","status":"affected","lessThan":"7.29.0","versionType":"semver"},{"version":"7.29.0","status":"unaffected","versionType":"semver"},{"version":"8.0.0","status":"affected","lessThan":"8.9.0","versionType":"semver"},{"version":"8.9.0","status":"unaffected","versionType":"semver"}]}],"references":["https://github.com/nodejs/undici/security/advisories/GHSA-4cwx-7wf7-3272","https://cna.openjsf.org/security-advisories.html"],"weaknesses":["CWE-200","CWE-248","CWE-525"],"ingestedAt":"2026-10-29T20:11:00.674Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/13xxx/CVE-2026-13697.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-13697","state":"PUBLISHED","datePublished":"2026-07-29T16:32:39.519Z","dateUpdated":"2026-07-29T17:53:57.335Z","assignerShortName":"openjs","assignerOrgId":"ce714d77-add3-4f53-aff5-83d477b104bb","dateReserved":"2026-06-29T11:30:50.679Z"},"containers":{"cna":{"title":"undici vulnerable to cross-user information disclosure and parse-time crash via degenerate private cache directives","descriptions":[{"lang":"en","value":"undici's cache interceptor mishandles malformed Cache-Control private directives. In undici 7.0.0 up to before 7.29.0 and 8.0.0 up to before 8.9.0, a response carrying a degenerate qualified private directive, such as private set to an empty value, can be stored in the default shared cache and later served to a different caller with the same cache key, disclosing private response bodies and headers including Set-Cookie. Separately, a Cache-Control header that combines an unqualified private directive with a qualified one triggers an uncaught TypeError in the cache-control parser, which rejects the request and, depending on the consumer's error handling, can terminate the process. Both issues affect applications using the cache interceptor in shared mode, including the default configuration. The issues are fixed in undici 7.29.0 and 8.9.0."}],"affected":[{"vendor":"undici","product":"undici","packageURL":"pkg:npm/undici","defaultStatus":"unaffected","versions":[{"version":"7.0.0","status":"affected","lessThan":"7.29.0","versionType":"semver"},{"version":"7.29.0","status":"unaffected","versionType":"semver"},{"version":"8.0.0","status":"affected","lessThan":"8.9.0","versionType":"semver"},{"version":"8.9.0","status":"unaffected","versionType":"semver"}]}],"references":[{"url":"https://github.com/nodejs/undici/security/advisories/GHSA-4cwx-7wf7-3272"},{"url":"https://cna.openjsf.org/security-advisories.html"}],"metrics":[{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H","baseScore":7.4,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-200","lang":"en","description":"CWE-200: Exposure of Sensitive Information to an Unauthorized Actor","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-248","lang":"en","description":"CWE-248: Uncaught Exception","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-525","lang":"en","description":"CWE-525: Use of Web Browser Cache Containing Sensitive Information","type":"CWE"}]}],"providerMetadata":{"shortName":"openjs","orgId":"ce714d77-add3-4f53-aff5-83d477b104bb","dateUpdated":"2026-07-29T16:32:39.519Z"},"credits":[{"lang":"en","type":"remediation developer","value":"mcollina"},{"lang":"en","type":"remediation reviewer","value":"UlisesGascon"}],"x_generator":{"engine":"cve-kit 1.0.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-29T17:53:46.323187Z","id":"CVE-2026-13697","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-29T17:53:57.335Z"}}]}}}