<?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>Proxy-Protocol - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/proxy-protocol/</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>Wed, 22 Jul 2026 21:24:38 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/proxy-protocol/feed.xml" rel="self" type="application/rss+xml"/><item><title>Netty HAProxyMessageDecoder Vulnerability Leads to Unbounded Memory Exhaustion</title><link>https://feed.craftedsignal.io/briefs/2026-07-netty-haproxymessagedecoder-mem-exhaust/</link><pubDate>Wed, 22 Jul 2026 21:24:38 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-netty-haproxymessagedecoder-mem-exhaust/</guid><description>A vulnerability, CVE-2026-55851, in Netty's `HAProxyMessageDecoder` can lead to unbounded memory exhaustion when an attacker sends a specific PROXY protocol v2 binary prefix followed by a version byte of `0xFF`, causing a signed-byte sentinel collision that traps the decoder in a version-detection loop and ultimately exhausts the JVM's direct memory allocation, resulting in a denial of service.</description><content:encoded><![CDATA[<p>A critical vulnerability, tracked as CVE-2026-55851, has been identified in the <code>HAProxyMessageDecoder</code> component within Netty's <code>codec-haproxy</code> module. This flaw allows an unauthenticated attacker to trigger an unbounded memory exhaustion, leading to a denial of service (DoS) for applications utilizing the vulnerable Netty versions. The vulnerability arises from an incorrect interpretation of a signed Java <code>byte</code> during protocol version detection. Specifically, when an attacker sends a PROXY protocol v2 binary prefix (<code>0D 0A 0D 0A 00 0D 0A 51 55 49 54 0A</code>) followed by a <code>0xFF</code> version byte, the decoder misinterprets the value due to sign extension. This results in a collision with an internal &quot;need more data&quot; sentinel value, trapping the decoder in an infinite loop where it continuously requests more data without processing or discarding previous input. This behavior causes an unbounded accumulation of inbound bytes in the <code>cumulation</code> buffer, ultimately exhausting the Java Virtual Machine's (JVM) direct memory allocation and rendering the affected application unresponsive.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker initiates a connection to a vulnerable application using Netty's <code>HAProxyMessageDecoder</code>.</li>
<li>The attacker sends a crafted PROXY protocol v2 binary header, specifically <code>0D 0A 0D 0A 00 0D 0A 51 55 49 54 0A</code>.</li>
<li>The attacker then appends a malicious version byte, <code>0xFF</code>, immediately following the crafted binary prefix.</li>
<li>The <code>HAProxyMessageDecoder</code> attempts to perform protocol version detection by reading the 13th byte (the <code>0xFF</code>).</li>
<li>Due to Java's signed <code>byte</code> type and subsequent widening to <code>int</code> without proper masking, the <code>0xFF</code> byte is interpreted as <code>int -1</code> through sign extension.</li>
<li>This <code>int -1</code> value collides with the decoder's internal &quot;need more data&quot; sentinel value, causing the decoder to believe it requires more data to resolve the version.</li>
<li>The decoder enters an infinite loop, continuously requesting more data and never consuming the already received bytes, bypassing size limit enforcements.</li>
<li>All subsequent inbound network traffic is accumulated in an unbounded <code>cumulation</code> buffer, leading to the exhaustion of the JVM's direct memory allocation and a denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The successful exploitation of CVE-2026-55851 leads to a complete denial of service (DoS) for applications using the vulnerable Netty <code>codec-haproxy</code> module. Attackers can trigger unbounded memory exhaustion in the target JVM by sending a specially crafted network payload. This will crash the affected service, making it unavailable to legitimate users. Organizations relying on these Netty versions for critical network services are at risk of service disruption and potential data loss if robust failover mechanisms are not in place. The attack requires no authentication and can be executed remotely, posing a significant threat to internet-facing applications.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the <code>netty-codec-haproxy</code> module to a patched version immediately to remediate CVE-2026-55851. Specifically, upgrade <code>maven/io.netty:netty-codec-haproxy</code> to <code>4.2.16.Final</code> or later, or <code>4.1.136.Final</code> or later.</li>
<li>Implement network intrusion detection/prevention systems (NIDS/NIPS) to monitor for unusual PROXY protocol traffic patterns that could indicate attempted exploitation of CVE-2026-55851.</li>
<li>Ensure robust application monitoring is in place to detect sudden increases in direct memory usage or JVM crashes that could be indicative of an attack exploiting CVE-2026-55851.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>memory-exhaustion</category><category>vulnerability</category><category>proxy-protocol</category></item></channel></rss>