Critical · published January 30, 2020
⚠️ A double serving of the Content-Length header could confuse your server! This sneaky flaw in Netty before version 4.1.44 lets a second Content-Length, or a Transfer-Encoding header, tag along for the ride. 🎢 Think of it like a restaurant order where the server receives two different quantities for the same dish – one says 'two burgers', and the other says 'three burgers'. The kitchen is left scratching their heads about how many to prepare! If exploited, this could lead to unexpected behaviors during data processing, potentially allowing attackers to send confusing or malformed requests that your server may misinterpret. In the worst-case scenario, it could lead to instability in service, leaving users frustrated and your application vulnerable.
Think of it like a restaurant order where the server receives two different quantities for the same dish – one says 'two burgers', and the other says 'three burgers'. The kitchen is left scratching their heads about how many to prepare! This vulnerability occurs in HttpObjectDecoder.java within Netty, allowing the presence of multiple conflicting Content-Length headers, which could disrupt the parsing of incoming HTTP requests.
If exploited, this could lead to unexpected behaviors during data processing, potentially allowing attackers to send confusing or malformed requests that your server may misinterpret. In the worst-case scenario, it could lead to instability in service, leaving users frustrated and your application vulnerable. Upgrade Netty to version 4.1.44 or later to eliminate this issue. Review and audit your HTTP handling code to ensure it properly manages Content-Length and Transfer-Encoding headers to mitigate any potential confusion. You've got this! Implement these fixes and keep your server running smoothly! 🛡️
| Product | Versions | Fixed in |
|---|---|---|
| netty/netty | < 4.1.44 | 4.1.44 |
| debian/debian_linux | all versions | — |
| debian/debian_linux | all versions | — |
| debian/debian_linux | all versions | — |
| fedoraproject/fedora | all versions | — |
| canonical/ubuntu_linux | all versions | — |
| redhat/jboss_amq_clients | all versions | — |
| redhat/jboss_enterprise_application_platform | all versions | — |
| redhat/jboss_enterprise_application_platform | all versions | — |
| apache/spark | all versions | — |
| apache/spark | all versions | — |