Skip to content
OpenAdvisories
Medium · 5.9 CVE-2021-21295 BIT-zookeeper-2021-21295EUVD-2021-0719GHSA-wm47-8v5p-wjpj

Possible request smuggling in HTTP/2 due missing validation

Published Mar 9, 2021 · Updated Oct 8, 2026 · Assigned by GitHub_M

Description

Netty is an open-source, asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. In Netty (io.netty:netty-codec-http2) before version 4.1.60.Final there is a vulnerability that enables request smuggling. If a Content-Length header is present in the original HTTP/2 request, the field is not validated by `Http2MultiplexHandler` as it is propagated up. This is fine as long as the request is not proxied through as HTTP/1.1. If the request comes in as an HTTP/2 stream, gets converted into the HTTP/1.1 domain objects (`HttpRequest`, `HttpContent`, etc.) via `Http2StreamFrameToHttpObjectCodec `and then sent up to the child channel's pipeline and proxied through a remote peer as HTTP/1.1 this may result in request smuggling. In a proxy case, users may assume the content-length is validated somehow, which is not the case. If the request is forwarded to a backend channel that is a HTTP/1.1 connection, the Content-Length now has meaning and needs to be checked. An attacker can smuggle requests inside the body as it gets downgraded from HTTP/2 to HTTP/1.1. For an example attack refer to the linked GitHub Advisory. Users are only affected if all of 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 has been patched in 4.1.60.Final As a workaround, the user can do the validation by themselves by implementing a custom `ChannelInboundHandler` that is put in the `ChannelPipeline` behind `Http2StreamFrameToHttpObjectCodec`.

Affected products

VendorProductAffectedFixed
netty io.netty:netty-codec-http2 < 4.1.60.Final —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 netty 1:4.1.48-3 —
Debian 13 netty 1:4.1.48-3 —
Debian 12 netty 1:4.1.48-3 —
Debian 10 netty 1:4.1.33-1+deb10u2 DSA-4885-1
ReleasePackageFixed inAdvisory
Ubuntu 22.04 LTS netty 1:4.1.48-4+deb11u1build0.22.04.1 USN-6049-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS netty 1:4.1.45-1ubuntu0.1~esm1 USN-6049-1
Ubuntu Pro 18.04 LTS netty 1:4.1.7-4ubuntu0.1+esm2 USN-6049-1
Ubuntu Pro 16.04 LTS netty 1:4.0.34-1ubuntu0.1~esm1 USN-6049-1
ReleasePackageFixed inAdvisory
Red Hat Satellite Utils 6 foreman 3.1.1.21-2.el7sat RHSA-2022:5498
Red Hat Satellite Utils 6 satellite 6.11.0-2.el7sat RHSA-2022:5498
Red Hat Satellite Capsule 6 foreman 3.1.1.21-2.el7sat RHSA-2022:5498
Red Hat Satellite Capsule 6 libsolv 0.7.22-1.el7pc RHSA-2022:5498
Red Hat Satellite Capsule 6 python-django +1 3.2.13-1.el8pc RHSA-2022:5498
Red Hat Satellite Capsule 6 python-lxml 4.7.1-1.el8pc RHSA-2022:5498
Red Hat Satellite Capsule 6 python-sqlparse 0.4.2-2.el8pc RHSA-2022:5498
Red Hat Satellite Capsule 6 satellite 6.11.0-2.el7sat RHSA-2022:5498
Red Hat Satellite 6 candlepin 4.1.13-1.el7sat RHSA-2022:5498
Red Hat Satellite 6 foreman 3.1.1.21-2.el7sat RHSA-2022:5498
Red Hat Satellite 6 libsolv 0.7.22-1.el7pc RHSA-2022:5498
Red Hat Satellite 6 python-django +1 3.2.13-1.el8pc RHSA-2022:5498
Red Hat Satellite 6 python-lxml 4.7.1-1.el8pc RHSA-2022:5498
Red Hat Satellite 6 python-sqlparse 0.4.2-2.el8pc RHSA-2022:5498
Red Hat Satellite 6 rubygem-actionpack 6.0.4.7-1.el8sat RHSA-2022:5498
Red Hat Satellite 6 rubygem-puma 5.6.2-1.el8sat RHSA-2022:5498
Red Hat Satellite 6 rubygem-sidekiq 5.2.10-1.el8sat RHSA-2022:5498
Red Hat Satellite 6 satellite 6.11.0-2.el7sat RHSA-2022:5498
Red Hat Satellite 6 tfm-rubygem-actionpack 6.0.4.7-1.el7sat RHSA-2022:5498
Red Hat Satellite 6 tfm-rubygem-puma 5.6.2-1.el7sat RHSA-2022:5498
Red Hat Satellite 6 tfm-rubygem-sidekiq 5.2.10-1.el7sat RHSA-2022:5498
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Red Hat JBoss EAP 7 eap7-apache-commons-io 2.10.0-1.redhat_00001.1.el7eap RHSA-2021:3658, RHSA-2021:3656
Red Hat JBoss EAP 7 eap7-artemis-wildfly-integration 1.0.4-1.redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-bouncycastle +3 1.68.0-2.redhat_00005.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-hal-console 3.2.14-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-infinispan +8 9.4.22-3.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-ironjacamar +8 1.4.30-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-jakarta-el 3.0.3-2.redhat_00006.1.el7eap RHSA-2021:3658, RHSA-2021:3656
Red Hat JBoss EAP 7 eap7-jboss-genericjms 2.0.9-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-jboss-marshalling +1 2.0.11-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-jboss-server-migration +21 1.7.2-6.Final_redhat_00007.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-jboss-weld-3.1-api +2 3.1.0-6.SP3_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-jgroups-kubernetes 1.0.16-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-mod_cluster 1.4.3-2.Final_redhat_00002.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-netty +1 4.1.60-1.Final_redhat_00001.1.el6eap RHSA-2021:3658, RHSA-2021:3656, RHSA-2021:2048
Red Hat JBoss EAP 7 eap7-resteasy +19 3.11.4-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-undertow 2.0.35-1.SP1_redhat_00001.1.el6eap RHSA-2021:3658, RHSA-2021:3656, RHSA-2021:2048
Red Hat JBoss EAP 7 eap7-velocity +1 2.3.0-1.redhat_00001.1.el6eap RHSA-2021:3658, RHSA-2021:3656, RHSA-2021:2048
Red Hat JBoss EAP 7 eap7-weld-ejb +6 3.1.6-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-wildfly +2 7.3.7-1.GA_redhat_00002.1.el6eap RHSA-2021:3658, RHSA-2021:3656, RHSA-2021:2048
Red Hat JBoss EAP 7 eap7-wildfly-elytron +1 1.10.12-1.Final_redhat_00001.1.el6eap RHSA-2021:3658, RHSA-2021:3656, RHSA-2021:2048
Red Hat JBoss EAP 7 eap7-wildfly-http-client +4 1.0.26-1.Final_redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-wildfly-java-jdk8 +1 7.3.7-1.GA_redhat_00002.1.el7eap RHSA-2021:3656, RHSA-2021:2047
Red Hat JBoss EAP 7 eap7-xalan-j2 2.7.1-36.redhat_00013.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat JBoss EAP 7 eap7-yasson 1.0.9-1.redhat_00001.1.el6eap RHSA-2021:2048, RHSA-2021:2047, RHSA-2021:2046
Red Hat A Mq Clients 2 python3-qpid-proton 0.33.0-8.el8 RHSA-2021:1511
Red Hat A Mq Clients 2 qpid-proton +10 0.33.0-6.el7_9 RHSA-2021:1511

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 8 libdb 5.3.28-42.el8_4 RLSA-2022:5498
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed netty 4.1.60-1.4 openSUSE-SU-2024:11085-1
openSUSE Leap 15.3 netty 4.1.75-150200.4.6.2 SUSE-SU-2022:1271-1
openSUSE Leap 15.2 netty 4.1.13-lp152.3.3.1 openSUSE-SU-2021:0448-1

Affected packages

EcosystemPackageAffectedFixedRecord
Maven io.netty:netty all versions — GHSA-wm47-8v5p-wjpj
Maven io.netty:netty-codec-http2 >= 4.0.0, < 4.1.60.Final 4.1.60.Final GHSA-wm47-8v5p-wjpj
Maven org.jboss.netty:netty all versions — GHSA-wm47-8v5p-wjpj

Advisories 17

References