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-apipie-bindingsUpgrade tfm-rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-hammer_cli_foreman_remote_executionUpgrade rubygem-apipie-bindingsUpgrade rubygem-jwtUpgrade rubygem-hammer_cli_foreman_webhooksUpgrade rubygem-hammer_cli_katelloUpgrade rubygem-hammer_cli_foreman_templatesUpgrade tfm-rubygem-little-pluggerUpgrade tfm-rubygem-clampUpgrade rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-mime-typesUpgrade tfm-rubygem-hammer_cli_foremanUpgrade tfm-rubygem-unicode-display_widthUpgrade tfm-rubygem-hammer_cli_foreman_ansibleUpgrade rubygem-unicodeUpgrade rubygem-unicode-debuginfoUpgrade tfm-rubygem-hammer_cli_foreman_webhooksUpgrade rubygem-little-pluggerUpgrade rubygem-localeUpgrade rubygem-fast_gettextUpgrade rubygem-loggingUpgrade rubygem-multi_jsonUpgrade rubygem-hammer_cli_foreman_openscapUpgrade tfm-rubygem-domain_nameUpgrade tfm-rubygem-powerbarUpgrade tfm-rubygem-fast_gettextUpgrade satellite-cloneUpgrade tfm-rubygem-jwtUpgrade tfm-rubygem-unf_extUpgrade tfm-rubygem-mime-types-dataUpgrade tfm-rubygem-hammer_cli_foreman_bootdiskUpgrade tfm-rubygem-hammer_cli_foreman_openscapUpgrade rubygem-hammer_cliUpgrade rubygem-amazing_printUpgrade tfm-rubygem-loggingUpgrade rubygem-unicode-debugsourceUpgrade tfm-rubygem-unicode-debuginfoUpgrade tfm-rubygem-netrcUpgrade rubygem-hashieUpgrade tfm-rubygem-rest-clientUpgrade tfm-rubygem-mime-typesUpgrade rubygem-rest-clientUpgrade rubygem-hammer_cli_foremanUpgrade tfm-rubygem-unfUpgrade tfm-rubygem-localeUpgrade tfm-rubygem-amazing_printUpgrade rubygem-unicode-display_widthUpgrade rubygem-mime-types-dataUpgrade rubygem-highlineUpgrade rubygem-hammer_cli_foreman_tasksUpgrade tfm-rubygem-oauthUpgrade tfm-rubygem-hammer_cli_foreman_remote_executionUpgrade rubygem-unf_ext-debugsourceUpgrade rubygem-hammer_cli_foreman_azure_rmUpgrade tfm-rubygem-hashieUpgrade rubygem-unf_extUpgrade rubygem-foreman_maintainUpgrade rubygem-domain_nameUpgrade tfm-rubygem-unicodeUpgrade tfm-rubygem-highlineUpgrade tfm-rubygem-multi_jsonUpgrade tfm-rubygem-hammer_cli_foreman_azure_rmUpgrade rubygem-netrcUpgrade foreman-cliUpgrade tfm-rubygem-hammer_cli_katelloUpgrade tfm-rubygem-hammer_cli_foreman_adminUpgrade satellite-maintainUpgrade rubygem-oauthUpgrade rubygem-http-cookieUpgrade rubygem-hammer_cli_foreman_adminUpgrade rubygem-clampUpgrade tfm-rubygem-hammer_cli_foreman_virt_who_configureUpgrade tfm-rubygem-unf_ext-debuginfoUpgrade rubygem-unf_ext-debuginfoUpgrade rubygem-hammer_cli_foreman_ansibleUpgrade tfm-runtimeUpgrade tfm-rubygem-http-cookieUpgrade rubygem-unfUpgrade rubygem-hammer_cli_foreman_virt_who_configureUpgrade rubygem-hammer_cli_foreman_bootdiskUpgrade tfm-rubygem-hammer_cli_foreman_templatesUpgrade rubygem-powerbarUpgrade satellite-cliUpgrade tfm-rubygem-hammer_cliUpgrade tfm-rubygem-hammer_cli_foreman_tasks | 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 foreman-cliUpgrade rubygem-unf_ext-debuginfoUpgrade rubygem-localeUpgrade rubygem-netrcUpgrade tfm-rubygem-hammer_cli_foreman_templatesUpgrade rubygem-hammer_cli_foreman_tasksUpgrade rubygem-hammer_cliUpgrade tfm-rubygem-hashieUpgrade tfm-rubygem-hammer_cli_foreman_remote_executionUpgrade rubygem-oauthUpgrade tfm-rubygem-hammer_cli_foreman_adminUpgrade rubygem-hammer_cli_foreman_adminUpgrade satellite-maintainUpgrade tfm-rubygem-rest-clientUpgrade tfm-rubygem-unf_ext-debuginfoUpgrade rubygem-highlineUpgrade tfm-rubygem-unicode-debuginfoUpgrade tfm-rubygem-hammer_cli_katelloUpgrade tfm-rubygem-unicodeUpgrade tfm-rubygem-http-cookieUpgrade rubygem-hammer_cli_foremanUpgrade rubygem-unf_extUpgrade rubygem-http-cookieUpgrade rubygem-clampUpgrade rubygem-foreman_maintainUpgrade tfm-rubygem-hammer_cli_foreman_virt_who_configureUpgrade tfm-rubygem-unicode-display_widthUpgrade rubygem-hammer_cli_foreman_templatesUpgrade rubygem-rest-clientUpgrade tfm-rubygem-highlineUpgrade rubygem-hammer_cli_foreman_ansibleUpgrade rubygem-fast_gettextUpgrade rubygem-hammer_cli_foreman_azure_rmUpgrade tfm-rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-hammer_cli_foreman_discoveryUpgrade rubygem-unicode-display_widthUpgrade tfm-rubygem-mime-types-dataUpgrade tfm-rubygem-amazing_printUpgrade rubygem-powerbarUpgrade rubygem-hammer_cli_foreman_bootdiskUpgrade tfm-rubygem-hammer_cli_foreman_tasksUpgrade tfm-rubygem-mime-typesUpgrade tfm-rubygem-hammer_cli_foreman_azure_rmUpgrade tfm-rubygem-netrcUpgrade rubygem-hashieUpgrade rubygem-apipie-bindingsUpgrade rubygem-mime-typesUpgrade tfm-rubygem-multi_jsonUpgrade tfm-rubygem-unf_extUpgrade tfm-rubygem-hammer_cli_foreman_webhooksUpgrade tfm-rubygem-hammer_cli_foreman_bootdiskUpgrade tfm-rubygem-little-pluggerUpgrade rubygem-unicode-debuginfoUpgrade rubygem-mime-types-dataUpgrade tfm-rubygem-hammer_cli_foreman_ansibleUpgrade tfm-rubygem-localeUpgrade rubygem-domain_nameUpgrade tfm-rubygem-jwtUpgrade tfm-rubygem-domain_nameUpgrade rubygem-multi_jsonUpgrade tfm-rubygem-hammer_cli_foreman_openscapUpgrade tfm-rubygem-hammer_cliUpgrade tfm-rubygem-hammer_cli_foremanUpgrade rubygem-hammer_cli_foreman_openscapUpgrade rubygem-hammer_cli_foreman_webhooksUpgrade rubygem-hammer_cli_foreman_remote_executionUpgrade satellite-cloneUpgrade tfm-rubygem-apipie-bindingsUpgrade rubygem-hammer_cli_foreman_virt_who_configureUpgrade tfm-rubygem-oauthUpgrade tfm-rubygem-fast_gettextUpgrade rubygem-unfUpgrade rubygem-hammer_cli_katelloUpgrade rubygem-little-pluggerUpgrade rubygem-unf_ext-debugsourceUpgrade rubygem-jwtUpgrade tfm-rubygem-clampUpgrade tfm-rubygem-unfUpgrade rubygem-amazing_printUpgrade tfm-rubygem-powerbarUpgrade tfm-runtimeUpgrade rubygem-unicode-debugsourceUpgrade rubygem-unicodeUpgrade rubygem-loggingUpgrade tfm-rubygem-loggingUpgrade satellite-cli | Jul 14, 2022 | Mar 9, 2021 |
| Rocky_linux | — | Upgrade libdb-debugsourceUpgrade libdb-sql-devel-debuginfoUpgrade libdb-utils-debuginfoUpgrade libdb-debuginfoUpgrade libdb-sql-debuginfoUpgrade libdb-cxx-debuginfoUpgrade libdb-cxx | Mar 12, 2024 | Mar 9, 2021 |
| Suse | — | Upgrade netty-javadocUpgrade netty-pomsUpgrade netty | Mar 20, 2021 | Mar 9, 2021 |
| Ubuntu | — | Upgrade libnetty-java (Ubuntu Pro)Upgrade libnetty-java | 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