<?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>Netty — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/netty/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 26 Mar 2026 18:51:27 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/netty/feed.xml" rel="self" type="application/rss+xml"/><item><title>Netty HTTP Request Smuggling via Chunked Extension Quoted-String Parsing</title><link>https://feed.craftedsignal.io/briefs/2026-04-netty-chunked-smuggling/</link><pubDate>Thu, 26 Mar 2026 18:51:27 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-netty-chunked-smuggling/</guid><description>Netty incorrectly parses quoted strings in HTTP/1.1 chunked transfer encoding extension values, enabling request smuggling attacks by terminating chunk header parsing at \r\n inside quoted strings instead of rejecting the malformed request.</description><content:encoded><![CDATA[<p>A vulnerability exists in Netty&rsquo;s HTTP/1.1 chunked transfer encoding extension parsing, specifically in how it handles quoted strings. This flaw, discovered during research into &ldquo;Funky Chunks&rdquo; HTTP request smuggling techniques, stems from Netty terminating chunk header parsing at <code>\r\n</code> inside quoted strings, instead of rejecting the request as malformed. This behavior deviates from RFC 9110, which mandates that CR (<code>%x0D</code>) and LF (<code>%x0A</code>) bytes are not permitted inside chunk extensions. This parsing differential allows attackers to smuggle HTTP requests. Versions affected include netty-codec-http &lt; 4.1.132.Final and netty-codec-http versions &gt;= 4.2.0.Alpha1 and &lt; 4.2.10.Final. This matters for defenders because successful exploitation can lead to severe consequences, including cache poisoning and session hijacking.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker sends a crafted HTTP request with chunked transfer encoding.</li>
<li>The request includes a chunk extension containing a quoted string with embedded <code>\r\n</code> characters. For example: <code>1;a=&quot;\r\n</code>.</li>
<li>Netty&rsquo;s HTTP parser incorrectly terminates the chunk header parsing at the embedded <code>\r\n</code>.</li>
<li>The remaining portion of the intended chunk extension and the subsequent chunk data are interpreted as the beginning of a new HTTP request.</li>
<li>The attacker injects a smuggled HTTP request, such as <code>GET /smuggled HTTP/1.1</code>.</li>
<li>The vulnerable server processes both the initial and smuggled requests on the same connection.</li>
<li>The smuggled request is executed, potentially bypassing security controls or accessing sensitive data.</li>
<li>The server returns responses for both requests, potentially leading to cache poisoning or other malicious outcomes.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability can lead to request smuggling, allowing attackers to inject arbitrary HTTP requests into a connection. This can result in cache poisoning, where smuggled responses may poison shared caches. Additionally, access control bypasses can occur, where smuggled requests circumvent frontend security controls. Session hijacking is also possible, where smuggled requests may intercept responses intended for other users. The impact is significant as it can compromise the confidentiality, integrity, and availability of web applications and services using vulnerable Netty versions.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Netty version 4.1.132.Final or 4.2.10.Final or later to remediate CVE-2026-33870.</li>
<li>Deploy the Sigma rule &ldquo;Detect Netty Chunked Transfer Encoding Request Smuggling&rdquo; to identify potentially malicious requests exploiting this vulnerability.</li>
<li>Inspect web server logs for HTTP requests with chunked transfer encoding and chunk extensions containing quoted strings with embedded carriage returns and line feeds (<code>\r\n</code>) to identify exploitation attempts.</li>
<li>Monitor network traffic for connections to 127.0.0.1 on port 8080 which is used in the proof of concept for request smuggling.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>netty</category><category>request-smuggling</category><category>http</category></item><item><title>Netty HTTP/2 CONTINUATION Frame Flood Denial of Service</title><link>https://feed.craftedsignal.io/briefs/2026-05-03-netty-http2-dos/</link><pubDate>Thu, 26 Mar 2026 18:51:14 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-03-netty-http2-dos/</guid><description>A denial of service vulnerability exists in Netty's HTTP/2 server implementation where an unauthenticated user can exhaust server CPU resources by sending a flood of CONTINUATION frames with zero-byte payloads, bypassing size-based mitigations and leading to service unavailability with minimal bandwidth usage; affected versions include netty-codec-http2 &lt; 4.1.132.Final and netty-codec-http2 versions &gt;= 4.2.0.Alpha1 and &lt; 4.2.10.Final.</description><content:encoded><![CDATA[<p>The Netty HTTP/2 CONTINUATION Frame Flood vulnerability (CVE-2026-33871) allows a remote, unauthenticated user to trigger a Denial of Service (DoS) condition on a Netty-based HTTP/2 server. This is achieved by sending a flood of HTTP/2 <code>CONTINUATION</code> frames, each containing a zero-byte payload. The vulnerability exists because Netty&rsquo;s <code>DefaultHttp2FrameReader</code> does not enforce a limit on the number of <code>CONTINUATION</code> frames it processes after receiving a <code>HEADERS</code> frame without the <code>END_HEADERS</code> flag. The zero-byte payload bypasses the <code>maxHeaderListSize</code> protection, as this protection is only triggered when the added payload has a non-zero length. This forces the server to consume excessive CPU resources, monopolizing a connection thread and rendering the server unresponsive to legitimate requests. This vulnerability impacts Netty versions prior to 4.1.132.Final and versions between 4.2.0.Alpha1 and 4.2.10.Final.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker establishes a TCP connection to the targeted Netty HTTP/2 server.</li>
<li>The attacker sends an HTTP/2 <code>HEADERS</code> frame to initiate a new stream. The <code>END_HEADERS</code> flag is deliberately omitted from this frame.</li>
<li>The server, upon receiving the <code>HEADERS</code> frame without the <code>END_HEADERS</code> flag, prepares to receive subsequent <code>CONTINUATION</code> frames.</li>
<li>The attacker floods the server with a series of <code>CONTINUATION</code> frames, each containing a zero-byte payload. These frames are sent over the established TCP connection.</li>
<li>The <code>DefaultHttp2FrameReader</code> processes each <code>CONTINUATION</code> frame, but the <code>verifyContinuationFrame()</code> method fails to enforce a limit on the number of received frames.</li>
<li>The <code>HeadersBlockBuilder.addFragment()</code> method processes the zero-byte payload, bypassing the <code>maxHeaderListSize</code> protection. The server CPU continues to process the stream of <code>CONTINUATION</code> frames.</li>
<li>The server exhausts CPU resources on the connection thread, as it is continuously processing the flood of <code>CONTINUATION</code> frames.</li>
<li>Legitimate users are unable to connect to the server or experience significant delays due to the server&rsquo;s unresponsiveness. This leads to a denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability leads to a CPU-based Denial of Service (DoS). All services using the vulnerable Netty HTTP/2 server implementation are susceptible. An unauthenticated attacker can exhaust server CPU resources, preventing legitimate users from accessing the service. The minimal bandwidth requirement for this attack makes it practical and scalable, allowing an attacker to disrupt services with limited resources. Successful exploitation results in service unavailability, impacting business operations and user experience.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Netty version 4.1.132.Final or 4.2.10.Final or later to patch CVE-2026-33871.</li>
<li>Implement rate limiting on HTTP/2 <code>CONTINUATION</code> frames to mitigate the impact of a flood attack. Consider implementing this at the application level if upgrading Netty is not immediately feasible.</li>
<li>Monitor CPU usage on servers running Netty HTTP/2 services. Alert on sustained high CPU usage, which may indicate an ongoing attack.</li>
<li>Deploy the Sigma rules provided in this brief to detect potential exploitation attempts in your environment.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>denial-of-service</category><category>http2</category><category>netty</category><category>cve-2026-33871</category></item></channel></rss>