<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 15:58:22 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-42584 — Netty: HttpClientCodec response desynchronization</title>
      <link>https://db.gcve.eu/vuln/cve-2026-42584</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; netty, io.netty netty-codec-http, Red Hat Cryostat 4 on RHEL 9, Red Hat AMQ Broker 7.13.6, Red Hat AMQ Broker 7.14.1, Red Hat build of Apache Camel 4.18.1.P1 for Spring Boot 3.5.16, Red Hat build of Quarkus 3.27.4, Red Hat build of Quarkus 3.33.2, Red Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 7, Red Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 8 and 26 more&lt;/p&gt;
&lt;p&gt;Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, HttpClientCodec pairs each inbound response with an outbound request by queue.poll() once per response, including for 1xx. If the client pipelines GET then HEAD and the server sends 103, then 200 with GET body, then 200 for HEAD, the queue pairs HEAD with the first 200. The HEAD rule then skips reading that message’s body, so the GET entity bytes stay on the stream and the following 200 is parsed from the wrong offset. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; netty, io.netty netty-codec-http, Red Hat Cryostat 4 on RHEL 9, Red Hat AMQ Broker 7.13.6, Red Hat AMQ Broker 7.14.1, Red Hat build of Apache Camel 4.18.1.P1 for Spring Boot 3.5.16, Red Hat build of Quarkus 3.27.4, Red Hat build of Quarkus 3.33.2, Red Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 7, Red Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 8 and 26 more&lt;/p&gt;
&lt;p&gt;Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, HttpClientCodec pairs each inbound response with an outbound request by queue.poll() once per response, including for 1xx. If the client pipelines GET then HEAD and the server sends 103, then 200 with GET body, then 200 for HEAD, the queue pairs HEAD with the first 200. The HEAD rule then skips reading that message’s body, so the GET entity bytes stay on the stream and the following 200 is parsed from the wrong offset. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-42584</guid>
    </item>
    <item>
      <title>GHSA-57rv-r2g8-2cj3 — Netty has HttpClientCodec response desynchronization</title>
      <link>https://db.gcve.eu/vuln/ghsa-57rv-r2g8-2cj3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: io.netty:netty-codec-http&lt;/p&gt;
&lt;p&gt;### Summary
 If HttpClientCodec is configured, there are use cases when a response body from one request, can be parsed as another&amp;#39;s.&lt;/p&gt;
&lt;p&gt;### Details
HttpClientCodec pairs each inbound response with an outbound request by `queue.poll()` once per response, including for `1xx`. If the client pipelines GET then HEAD and the server sends 103, then 200 with GET body, then 200 for HEAD, the queue pairs HEAD with the first 200. The HEAD rule then skips reading that message’s body, so the GET entity bytes stay on the stream and the following 200 is parsed from the wrong offset.&lt;/p&gt;
&lt;p&gt;Prerequisites 
- HTTP/1.1 pipelining
- HEAD in the pipeline
- The server sends 1xx&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```java
    @Test
    public void test() {
        EmbeddedChannel channel = new EmbeddedChannel(new HttpClientCodec());&lt;/p&gt;
&lt;p&gt;assertTrue(channel.writeOutbound(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, &amp;#34;/1&amp;#34;)));
        ByteBuf request = channel.readOutbound();
        request.release();
        assertNull(channel.readOutbound());&lt;/p&gt;
&lt;p&gt;assertTrue(channel.writeOutbound(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.HEAD, &amp;#34;/2&amp;#34;)));
        request = channel.readOutbound();
        request.release();
        assertNull(channel.readOutbound());&lt;/p&gt;
&lt;p&gt;String responseStr = &amp;#34;HTTP/1.1 103 Early Hints\r\n\r\n&amp;#34; +
                &amp;#34;HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\nhello&amp;#34; +
                &amp;#34;HTTP/1.1 200 OK\r\n\r\n&amp;#34;;
        assertTrue(channel.writeInbound(Unpooled.copiedBuffer(r…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: io.netty:netty-codec-http&lt;/p&gt;
&lt;p&gt;### Summary
 If HttpClientCodec is configured, there are use cases when a response body from one request, can be parsed as another&amp;#39;s.&lt;/p&gt;
&lt;p&gt;### Details
HttpClientCodec pairs each inbound response with an outbound request by `queue.poll()` once per response, including for `1xx`. If the client pipelines GET then HEAD and the server sends 103, then 200 with GET body, then 200 for HEAD, the queue pairs HEAD with the first 200. The HEAD rule then skips reading that message’s body, so the GET entity bytes stay on the stream and the following 200 is parsed from the wrong offset.&lt;/p&gt;
&lt;p&gt;Prerequisites 
- HTTP/1.1 pipelining
- HEAD in the pipeline
- The server sends 1xx&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```java
    @Test
    public void test() {
        EmbeddedChannel channel = new EmbeddedChannel(new HttpClientCodec());&lt;/p&gt;
&lt;p&gt;assertTrue(channel.writeOutbound(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, &amp;#34;/1&amp;#34;)));
        ByteBuf request = channel.readOutbound();
        request.release();
        assertNull(channel.readOutbound());&lt;/p&gt;
&lt;p&gt;assertTrue(channel.writeOutbound(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.HEAD, &amp;#34;/2&amp;#34;)));
        request = channel.readOutbound();
        request.release();
        assertNull(channel.readOutbound());&lt;/p&gt;
&lt;p&gt;String responseStr = &amp;#34;HTTP/1.1 103 Early Hints\r\n\r\n&amp;#34; +
                &amp;#34;HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\nhello&amp;#34; +
                &amp;#34;HTTP/1.1 200 OK\r\n\r\n&amp;#34;;
        assertTrue(channel.writeInbound(Unpooled.copiedBuffer(r…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-57rv-r2g8-2cj3</guid>
    </item>
  </channel>
</rss>
