<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Netty-Incubator-Codec-Bhttp - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/netty-incubator-codec-bhttp/</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>Thu, 20 Aug 2026 19:12:42 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/netty-incubator-codec-bhttp/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Unauthenticated CPU Exhaustion DoS in netty-incubator-codec-bhttp</title><link>https://feed.craftedsignal.io/briefs/2026-08-netty-bhttp-dos/</link><pubDate>Thu, 20 Aug 2026 19:12:42 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-netty-bhttp-dos/</guid><description>An infinite loop vulnerability in the BinaryHttpParser of netty-incubator-codec-bhttp allows unauthenticated attackers to exhaust event-loop threads and induce a persistent denial of service via specially crafted BHTTP requests.</description><content:encoded><![CDATA[<p>The <code>netty-incubator-codec-bhttp</code> library, used for decoding Binary HTTP (RFC 9292) messages, contains a critical control-flow defect in the <code>BinaryHttpParser.readFieldSection</code> method. The vulnerability arises from an improper loop termination condition (<code>fieldSectionLength != 0</code>) and the failure to enforce forward progress when processing field lines.</p>
<p>An unauthenticated attacker can supply a malformed BHTTP request where the declared field-section length does not match the actual data. If the parser consumes zero bytes or consumes more bytes than declared, the loop enters an infinite busy-spin. Because the code relies on Java <code>assert</code> statements - which are stripped in production JVM environments - to guarantee termination and progress, the defect is fully exposed to remote exploitation. A small number of these requests can pin every available Netty event-loop thread at 100% CPU, resulting in a complete denial of service for OHTTP gateways or clients until the process is restarted.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker obtains the target OHTTP gateway's public HPKE key configuration.</li>
<li>Attacker crafts a malicious BHTTP message where the declared field-section length is understated relative to the actual field line contents.</li>
<li>Attacker wraps the malicious BHTTP payload within a standard OHTTP request, encrypted with the gateway's public key.</li>
<li>OHTTP gateway receives the request and decrypts the chunk into the <code>binaryHttpCumulation</code> buffer.</li>
<li><code>OHttpRequestResponseContext</code> passes the attacker-controlled plaintext directly to <code>BinaryHttpParser.parse</code>.</li>
<li><code>BinaryHttpParser</code> enters the <code>readFieldSection</code> method and triggers the vulnerable <code>while</code> loop (lines 619-626).</li>
<li>The loop fails to terminate due to the <code>!= 0</code> condition or zero-byte progress, initiating an infinite CPU-bound spin.</li>
<li>Repeating the request exhausts the Netty event-loop group, leading to a total denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The attack results in an unauthenticated, persistent denial of service. By pinning the event-loop threads of an OHTTP gateway or client, the attacker renders the service incapable of accepting new connections or processing traffic. The impact is significant for high-availability infrastructure relying on Netty-based OHTTP gateways, as the service remains unavailable until manual intervention (process restart) occurs.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Update <code>netty-incubator-codec-bhttp</code> to a version containing the patched <code>BinaryHttpParser</code> logic that replaces the vulnerable <code>while</code> loop with explicit exception handling.</li>
<li>Promote input validation invariants previously handled by <code>assert</code> (lines 622, 624) to explicit <code>CorruptedFrameException</code> checks to ensure security regardless of JVM assertion settings.</li>
<li>Verify that production deployments are not bypassing framing errors; ensure the parser enforces strict adherence to RFC 9292 regarding declared versus actual field-section length consumption.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>vulnerability</category><category>netty</category></item></channel></rss>