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`.
CVSS Details
- CVSS 3.1 Base Score: 5.9
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Centos_linux | — | Upgrade tfm-rubygem-hammer_cli_foreman_webhooksUpgrade tfm-rubygem-mime-types-dataUpgrade tfm-rubygem-hammer_cli_foremanUpgrade rubygem-mime-typesUpgrade tfm-rubygem-hammer_cli_foreman_openscapUpgrade rubygem-hammer_cli_foreman_openscapUpgrade rubygem-hammer_cliUpgrade tfm-rubygem-domain_nameUpgrade tfm-rubygem-unf_extUpgrade rubygem-amazing_printUpgrade satellite-cloneUpgrade rubygem-little-pluggerUpgrade rubygem-localeUpgrade rubygem-fast_gettextUpgrade rubygem-multi_jsonUpgrade rubygem-unicodeUpgrade rubygem-unicode-debuginfoUpgrade rubygem-unicode-debugsourceUpgrade rubygem-hammer_cli_katelloUpgrade tfm-rubygem-clampUpgrade rubygem-hammer_cli_foreman_webhooksUpgrade rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-loggingUpgrade tfm-rubygem-unicode-display_widthUpgrade tfm-rubygem-hammer_cli_foreman_discoveryUpgrade tfm-rubygem-hammer_cli_foreman_ansibleUpgrade rubygem-apipie-bindingsUpgrade tfm-rubygem-loggingUpgrade tfm-rubygem-fast_gettextUpgrade tfm-rubygem-hammer_cli_foreman_bootdiskUpgrade tfm-rubygem-apipie-bindingsUpgrade tfm-rubygem-jwtUpgrade tfm-rubygem-powerbarUpgrade rubygem-hammer_cli_foreman_remote_executionUpgrade tfm-rubygem-little-pluggerUpgrade rubygem-hammer_cli_foreman_templatesUpgrade rubygem-jwtUpgrade tfm-rubygem-unicode-debuginfoUpgrade rubygem-hammer_cli_foreman_azure_rmUpgrade rubygem-hashieUpgrade tfm-rubygem-rest-clientUpgrade tfm-rubygem-mime-typesUpgrade rubygem-rest-clientUpgrade rubygem-hammer_cli_foremanUpgrade tfm-rubygem-unfUpgrade tfm-rubygem-amazing_printUpgrade tfm-rubygem-localeUpgrade rubygem-unicode-display_widthUpgrade satellite-cliUpgrade satellite-maintainUpgrade tfm-rubygem-hammer_cli_foreman_templatesUpgrade tfm-rubygem-hammer_cli_foreman_adminUpgrade rubygem-oauthUpgrade rubygem-http-cookieUpgrade rubygem-hammer_cli_foreman_adminUpgrade rubygem-clampUpgrade tfm-rubygem-unf_ext-debuginfoUpgrade tfm-rubygem-hammer_cli_foreman_virt_who_configureUpgrade tfm-rubygem-hammer_cli_foreman_tasksUpgrade rubygem-domain_nameUpgrade rubygem-netrcUpgrade foreman-cliUpgrade tfm-rubygem-multi_jsonUpgrade tfm-rubygem-netrcUpgrade tfm-runtimeUpgrade tfm-rubygem-http-cookieUpgrade rubygem-unfUpgrade rubygem-powerbarUpgrade rubygem-hammer_cli_foreman_virt_who_configureUpgrade rubygem-foreman_maintainUpgrade rubygem-hammer_cli_foreman_ansibleUpgrade tfm-rubygem-hammer_cli_katelloUpgrade rubygem-hammer_cli_foreman_bootdiskUpgrade tfm-rubygem-hammer_cli_foreman_azure_rmUpgrade tfm-rubygem-unicodeUpgrade rubygem-unf_extUpgrade tfm-rubygem-highlineUpgrade tfm-rubygem-hammer_cliUpgrade tfm-rubygem-hashieUpgrade tfm-rubygem-hammer_cli_foreman_remote_executionUpgrade rubygem-unf_ext-debugsourceUpgrade rubygem-mime-types-dataUpgrade rubygem-hammer_cli_foreman_tasksUpgrade tfm-rubygem-oauthUpgrade rubygem-highlineUpgrade rubygem-unf_ext-debuginfo | Jul 14, 2022 | Mar 9, 2021 |
| Debian | — | Upgrade netty | Apr 7, 2021 | Mar 9, 2021 |
| Red Hat Jboss Eap | — | Upgrade Red Hat JBoss EAP to the latest version | Sep 19, 2024 | Mar 9, 2021 |
| Red_hat Jboss_eap | — | — | Apr 10, 2023 | Mar 9, 2021 |
| Redhat_linux | — | Upgrade rubygem-hammer_cli_katelloUpgrade rubygem-unf_ext-debugsourceUpgrade tfm-rubygem-hammer_cli_foremanUpgrade tfm-rubygem-hammer_cli_foreman_ansibleUpgrade satellite-cloneUpgrade tfm-rubygem-localeUpgrade rubygem-hammer_cli_foreman_webhooksUpgrade rubygem-jwtUpgrade rubygem-hammer_cli_foreman_openscapUpgrade tfm-rubygem-domain_nameUpgrade rubygem-mime-typesUpgrade tfm-rubygem-loggingUpgrade tfm-rubygem-multi_jsonUpgrade satellite-cliUpgrade rubygem-unicodeUpgrade tfm-rubygem-little-pluggerUpgrade tfm-rubygem-unf_extUpgrade tfm-runtimeUpgrade tfm-rubygem-hammer_cliUpgrade rubygem-amazing_printUpgrade rubygem-mime-types-dataUpgrade rubygem-unicode-debuginfoUpgrade rubygem-multi_jsonUpgrade rubygem-domain_nameUpgrade tfm-rubygem-unfUpgrade tfm-rubygem-apipie-bindingsUpgrade tfm-rubygem-oauthUpgrade tfm-rubygem-hammer_cli_foreman_bootdiskUpgrade rubygem-hammer_cli_foreman_virt_who_configureUpgrade rubygem-apipie-bindingsUpgrade tfm-rubygem-hammer_cli_foreman_webhooksUpgrade tfm-rubygem-fast_gettextUpgrade tfm-rubygem-hammer_cli_foreman_openscapUpgrade tfm-rubygem-clampUpgrade rubygem-little-pluggerUpgrade tfm-rubygem-powerbarUpgrade tfm-rubygem-jwtUpgrade rubygem-unfUpgrade rubygem-loggingUpgrade rubygem-unicode-debugsourceUpgrade rubygem-hammer_cli_foreman_remote_executionUpgrade tfm-rubygem-unicodeUpgrade rubygem-hammer_cliUpgrade tfm-rubygem-mime-typesUpgrade tfm-rubygem-hashieUpgrade tfm-rubygem-hammer_cli_foreman_virt_who_configureUpgrade rubygem-hashieUpgrade tfm-rubygem-unicode-debuginfoUpgrade tfm-rubygem-http-cookieUpgrade tfm-rubygem-hammer_cli_katelloUpgrade rubygem-oauthUpgrade rubygem-hammer_cli_foreman_tasksUpgrade tfm-rubygem-hammer_cli_foreman_tasksUpgrade tfm-rubygem-hammer_cli_foreman_remote_executionUpgrade rubygem-hammer_cli_foreman_azure_rmUpgrade tfm-rubygem-hammer_cli_foreman_templatesUpgrade tfm-rubygem-highlineUpgrade rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-clampUpgrade rubygem-unf_ext-debuginfoUpgrade rubygem-localeUpgrade tfm-rubygem-mime-types-dataUpgrade satellite-maintainUpgrade rubygem-http-cookieUpgrade foreman-cliUpgrade rubygem-unf_extUpgrade rubygem-hammer_cli_foreman_adminUpgrade tfm-rubygem-unf_ext-debuginfoUpgrade tfm-rubygem-rest-clientUpgrade tfm-rubygem-unicode-display_widthUpgrade rubygem-unicode-display_widthUpgrade rubygem-hammer_cli_foreman_templatesUpgrade rubygem-hammer_cli_foreman_ansibleUpgrade tfm-rubygem-hammer_cli_foreman_azure_rmUpgrade tfm-rubygem-hammer_cli_foreman_adminUpgrade tfm-rubygem-netrcUpgrade rubygem-foreman_maintainUpgrade tfm-rubygem-amazing_printUpgrade rubygem-powerbarUpgrade rubygem-netrcUpgrade rubygem-rest-clientUpgrade tfm-rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-hammer_cli_foreman_bootdiskUpgrade rubygem-fast_gettextUpgrade rubygem-highlineUpgrade rubygem-hammer_cli_foreman | Jul 14, 2022 | Mar 9, 2021 |
| Rocky_linux | — | Upgrade libdb-debuginfoUpgrade libdb-utils-debuginfoUpgrade libdb-sql-devel-debuginfoUpgrade libdb-debugsourceUpgrade libdb-sql-debuginfoUpgrade libdb-cxxUpgrade libdb-cxx-debuginfo | Mar 12, 2024 | Mar 9, 2021 |
| Suse | — | Upgrade netty-javadocUpgrade nettyUpgrade netty-poms | Mar 20, 2021 | Mar 9, 2021 |
| Ubuntu | — | Upgrade libnetty-javaUpgrade libnetty-java (Ubuntu Pro) | May 1, 2023 | Mar 9, 2021 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub