libnetty-java: Netty is an open-source, asynchronous event-driven network applicationframework for rapid development of maintainable...
CVE-2021-21295 is fixed in 2 products on 1 platform, first by RLSA-2022:5498, released July 5, 2022. It is not reported as exploited. Patch Radar priority: Routine.
Netty is an open-source, asynchronous event-driven network applicationframework for rapid development of maintainable high performance protocolservers & clients. In Netty (io.netty:netty-codec-http2) before version4.1.60.Final there is a vulnerability that enables request smuggling. If aContent-Length header is present in the original HTTP/2 request, the fieldis not validated by `Http2MultiplexHandler` as it is propagated up. This isfine as long as the request is not proxied through as HTTP/1.1. If therequest comes in as an HTTP/2 stream, gets converted into the HTTP/1.1domain objects (`HttpRequest`, `HttpContent`, etc.) via`Http2StreamFrameToHttpObjectCodec `and then sent up to the child channel'spipeline and proxied through a remote peer as HTTP/1.1 this may result inrequest smuggling. In a proxy case, users may assume the content-length isvalidated somehow, which is not the case. If the request is forwarded to abackend channel that is a HTTP/1.1 connection, the Content-Length now hasmeaning and needs to be checked. An attacker can smuggle requests insidethe body as it gets downgraded from HTTP/2 to HTTP/1.1. For an exampleattack refer to the linked GitHub Advisory. Users are only affected if allof this is true: `HTTP2MultiplexCodec` or `Http2FrameCodec` is used,`Http2StreamFrameToHttpObjectCodec` is used to convert to HTTP/1.1 objects,and these HTTP/1.1 objects are forwarded to another remote peer. This hasbeen patched in 4.1.60.Final As a workaround, the user can do thevalidation by themselves by implementing a custom `ChannelInboundHandler`that is put in the `ChannelPipeline` behind`Http2StreamFrameToHttpObjectCodec`.
Where it's fixed
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| Linux | |||
| libdb · rocky 8 | 0:5.3.28-42.el8_4 | RLSA-2022:5498 | Jul 5, 2022 |
| libnetty-java · Ubuntu 18.04.6 LTS (bionic) | 1:4.1.7-4ubuntu0.1+esm2 | libnetty-java 1:4.1.7-4ubuntu0.1+esm2 | Dec 12, 2022 |
| libnetty-java · Ubuntu 20.04 LTS (focal) | 1:4.1.45-1ubuntu0.1~esm1 | libnetty-java 1:4.1.45-1ubuntu0.1~esm1 | Dec 12, 2022 |
| libnetty-java · Ubuntu 22.04.1 LTS (jammy) | 1:4.1.48-4+deb11u1build0.22.04.1 | libnetty-java 1:4.1.48-4+deb11u1build0.22.04.1 | Dec 12, 2022 |
| libnetty-java · Ubuntu 24.10 (oracular) | 4.1.48-3 | libnetty-java 4.1.48-3 | Jan 16, 2026 |
| libnetty-java · Ubuntu 25.04 (plucky) | 4.1.48-3 | libnetty-java 4.1.48-3 | Jan 16, 2026 |
Patch Radar data is free to use with attribution. Terms and how to credit it.
Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.