GHSA-wx5j-54mm-rqqq CVE-2021-43797
HTTP request smuggling in netty
- Severity
- 6.5 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 2.88%
- Chance of exploitation in the next 30 days. Higher than 86.87% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
- Fix
4.1.71.Final- Upgrade io.netty:netty-codec-http to this version or later
Description
Impact
Netty currently just skips control chars when these are present at the beginning / end of the header name. We should better fail fast as these are not allowed by the spec and could lead to HTTP request smuggling.
Failing to do the validation might cause netty to "sanitize" header names before it forward these to another remote system when used as proxy. This remote system can't see the invalid usage anymore and so not do the validation itself.
Affected versions
Maven
| Package | Vulnerable | Fixed in |
|---|---|---|
| io.netty:netty | all versions |
No fix yet |
| io.netty:netty-codec-http | >= 4.0.0, < 4.1.71.Final |
4.1.71.Final |
| org.jboss.netty:netty | all versions |
No fix yet |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
io.netty:netty-codec-http Maven → 4.1.71.Final
- maven
<dependency><groupId>io.netty</groupId><artifactId>netty-codec-http</artifactId><version>4.1.71.Final</version></dependency>- gradle
implementation("io.netty:netty-codec-http:4.1.71.Final")
Severity breakdown
CVSS 3.1 6.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- Required
- Scope
- Unchanged
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Weakness
CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
How to prevent it
- Implementation: Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
- Implementation: Use only SSL communication.
- Implementation: Terminate the client session after each request.
- System Configuration: Turn all pages to non-cacheable.
References
Advisories
Other links
- github.com/netty/netty/security/advisories/GHSA-wx5j-54mm-rqqq
- github.com/netty/netty/pull/11891
- github.com/netty/netty/commit/07aa6b5938a8b6ed7a6586e066400e2643897323
- github.com/netty/netty
- lists.debian.org/debian-lts-announce/2023/01/msg00008.html
- security.netapp.com/advisory/ntap-20220107-0003
- debian.org/security/2023/dsa-5316
- oracle.com/security-alerts/cpuapr2022.html
- oracle.com/security-alerts/cpujul2022.html
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-8c42-7qj2-3j46 Netty Vulnerable to Cache Poisoning and Information Disclosure via CORS Vary Header Overwrite | High | Also affects io.netty:netty-codec-http |
| GHSA-gcjf-9mgh-3p7g Netty: CRLF Injection via Multipart Filename in Netty HttpPostRequestEncoder | Medium | Also affects io.netty:netty-codec-http |
| GHSA-q4f6-jm68-57ww Netty: [HttpContentEncoder] Unbounded Per-Connection Queue Growth via HTTP/1.1 Pipelining Leads to Denial of Service | High | Also affects io.netty:netty-codec-http |
| GHSA-4mp9-239f-g9hg Netty: WebSockets V07/V08 handshaker missing Connection/Upgrade validation | High | Also affects io.netty:netty-codec-http |
| GHSA-6cqp-g7gg-8hr5 Netty: Security Control Bypass via CORS Short-Circuit Failure | Medium | Also affects io.netty:netty-codec-http |
| GHSA-jppx-w49h-x2qq Netty: [SpdyHttpDecoder] ByteBuf Reference Leak on RST_STREAM Leads to Native Memory Exhaustion | High | Also affects io.netty:netty-codec-http |
| GHSA-mvh2-crg5-v77c Netty SPDY zlib header block continues decoded expansion after maxHeaderSize truncation | High | Also affects io.netty:netty-codec-http |
| GHSA-6jqx-86gh-f27w Netty SPDY SETTINGS frame count materializes unbounded settings map | High | Also affects io.netty:netty-codec-http |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor