<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Undici (8.x &lt; 8.9.0) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/undici-8.x--8.9.0/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 03 Aug 2026 20:48:13 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/undici-8.x--8.9.0/feed.xml" rel="self" type="application/rss+xml"/><item><title>Information Disclosure and Denial of Service in Undici Cache Interceptor</title><link>https://feed.craftedsignal.io/briefs/2026-08-undici-cache-vulnerability/</link><pubDate>Mon, 03 Aug 2026 20:48:13 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-undici-cache-vulnerability/</guid><description>The undici library is susceptible to cache poisoning leading to information disclosure and application crashes due to improper handling of malformed Cache-Control directives in the cache interceptor.</description><content:encoded><![CDATA[<p>The undici HTTP/1.1 client for Node.js contains a high-severity vulnerability (CVE-2026-13697) within its cache interceptor component. The flaw arises from incorrect parsing of the <code>Cache-Control</code> header, specifically regarding the <code>private</code> directive.</p>
<p>Two distinct vectors are identified. First, responses containing malformed qualified private directives (e.g., <code>Cache-Control: private=&quot;&quot;</code>) fail the shared-cache security guard, causing user-specific responses to be stored in a shared cache. This results in subsequent users receiving cached data meant for others, including sensitive information like <code>Set-Cookie</code> headers. Second, a parse-time crash occurs when a server returns a <code>Cache-Control</code> header containing both unqualified and qualified private directives (e.g., <code>public, max-age=60, private, private=&quot;hdr&quot;</code>). This triggers an uncaught <code>TypeError</code> during parsing, which can lead to application process termination depending on how the error is handled by the consumer. The issue affects undici versions 7.x prior to 7.29.0 and 8.x prior to 8.9.0.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of the information disclosure vulnerability allows an attacker to gain unauthorized access to sensitive user data and session cookies of other users sharing the same cache key. The parse-time crash vulnerability poses a denial-of-service risk for applications using the cache interceptor, as a malicious or misconfigured upstream server can force the client process to crash by sending specifically crafted headers. The scope covers any application utilizing <code>undici</code> with the <code>interceptors.cache()</code> functionality enabled.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>undici</code> version 7.29.0 or 8.9.0 immediately to apply the patch normalizing cache directive arrays.</li>
<li>Audit applications currently using <code>interceptors.cache()</code> to determine if they are in shared mode.</li>
<li>Until the upgrade is deployed, configure the cache interceptor to use <code>type: 'private'</code> or disable caching for untrusted origins if possible.</li>
<li>Implement application-level error handling for undici request promises to catch and recover from potential <code>TypeError</code> exceptions during response header parsing.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>vulnerability</category><category>npm</category><category>nodejs</category><category>webserver</category></item></channel></rss>