CVE-2026-85008: undici vulnerable to caching and replay of unsafe HTTP method responses
undici's cache interceptor documents that only safe HTTP methods are cached, but its logic to skip caching is built by subtracting the configured methods from the set of safe methods, so an unsafe method such as POST, PUT, or DELETE is never placed in the skip list and instead falls through to the full cache-read path. The response-storage gate also lacked a method check, so a response to an unsafe request that is heuristically cacheable or carries an explicit Cache-Control directive is stored and later replayed from cache. Because response headers from a remote origin are untrusted, an origin can answer once with a cacheable status and then have the client's own subsequent state-changing requests to that path served from the stale cache entry without ever reaching the origin, an integrity failure that occurs under the interceptor's default configuration. This affects undici versions from 7.0.0 up to 7.29.1 and from 8.0.0 up to 8.10.2. Users should upgrade to undici 7.29.1 or 8.10.2.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 7.29.1 - Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 8.10.2
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments using undici's cache interceptor are affected, including under its default configuration. The issue affects undici versions from 7.0.0 through 7.29.1 and from 8.0.0 through 8.10.2.
What must an attacker be able to do to exploit this?
A remote origin must be able to return a response to an unsafe request that is heuristically cacheable or includes an explicit Cache-Control directive. That response can then be stored and replayed when the client later makes state-changing requests to the same path.
What is the impact of a cached unsafe-method response?
A later POST, PUT, or DELETE request may be served from a stale cache entry rather than being sent to the origin. This creates an integrity failure because the intended state-changing request does not reach the server.
What is the recommended remediation?
Upgrade undici to version 7.29.1 or 8.10.2.