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.61.Final there is a vulnerability that enables request smuggling. The content-length header is not correctly validated if the request only uses a single Http2HeaderFrame with the endStream set to to true. This could lead to request smuggling if the request is proxied to a remote peer and translated to HTTP/1.1. This is a followup of GHSA-wm47-8v5p-wjpj/CVE-2021-21295 which did miss to fix this one case. This was fixed as part of 4.1.61.Final.
[
{
"source": "https://github.com/netty/netty/commit/b0fa4d5aab4215f3c22ce6123dd8dd5f38dc0432",
"target": {
"file": "codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionDecoder.java"
},
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"13838573216768640385759793565529255181",
"64590118773695994096416701453684169693",
"40366867890308275733641722075111913202",
"99442970543979916107411405808344167983",
"198242231044819727702710407131067821833",
"225394451863276396159374637437669084843",
"301911554181015496237786310350552407434",
"139803867202197457261202793786133121803",
"110545635642286327695068815175686630525",
"102270329366318299529951125491743550036",
"96141737589129960175616447517902386799"
],
"threshold": 0.9
},
"signature_version": "v1",
"id": "CVE-2021-21409-2dd43cd2"
},
{
"source": "https://github.com/netty/netty/commit/b0fa4d5aab4215f3c22ce6123dd8dd5f38dc0432",
"target": {
"function": "onHeadersRead",
"file": "codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionDecoder.java"
},
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "248404261420512246011971280766729204064",
"length": 2300.0
},
"signature_version": "v1",
"id": "CVE-2021-21409-50ee60f4"
},
{
"source": "https://github.com/netty/netty/commit/b0fa4d5aab4215f3c22ce6123dd8dd5f38dc0432",
"target": {
"file": "codec-http2/src/test/java/io/netty/handler/codec/http2/Http2MultiplexTest.java"
},
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"198474550372756316732781608140999075472",
"222075586400587720623712958327292286488",
"2476563565448013713485613998268497641",
"284125967723317361815743930750478417322",
"123032726700344086474560707545944672027",
"321810393895313652773431334759360777572",
"339270693203750699307445382171447256840",
"157960450431527514498381399403836862564"
],
"threshold": 0.9
},
"signature_version": "v1",
"id": "CVE-2021-21409-c44b07e9"
},
{
"source": "https://github.com/netty/netty/commit/b0fa4d5aab4215f3c22ce6123dd8dd5f38dc0432",
"target": {
"function": "headerMultipleContentLengthValidationShouldPropagate",
"file": "codec-http2/src/test/java/io/netty/handler/codec/http2/Http2MultiplexTest.java"
},
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "241598310014639263931222477268701821567",
"length": 424.0
},
"signature_version": "v1",
"id": "CVE-2021-21409-fc46fd41"
}
]