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