Advisory · CVE-2026-100663
Netty mistranslates CONNECT request-targets, letting proxies tunnel the wrong authority
Netty's HTTP/3 codec mishandles HTTP/1 CONNECT authority-form request-targets when converting to HTTP/3: the CONNECT target's host is emitted as the scheme, the path becomes /, and the HTTP/1 Host header becomes the authority, or the target is dropped entirely. In an HTTP/1-to-HTTP/3 proxy, a client can bypass tunnel allow-lists and egress policy with a CONNECT whose Host header names a different authority than the request-target. Fixed in 4.2.18.Final.
- Vendor
- Netty
- Product
- Netty
- Identifier / CWE
- CVE-2026-100663
CWE-20 - Action timing
- Immediate
Explain it like I’m five
A translator misreads a travel order: instead of forwarding the destination as written, it copies the address from a different line of the form. A traveler uses the mix-up to get the gate to open a tunnel to the wrong place.
- 01Crafted CONNECT
The client sends an HTTP/1 CONNECT with an authority-form request-target and a Host header naming a different authority.
- 02Mistranslation
Netty emits the CONNECT target's host as the scheme, the path as /, and the Host header as the authority, or drops the target.
- 03Allow-list split
Proxy policy sees one authority while the upstream HTTP/3 peer receives another.
- 04Tunnel bypass
The client tunnels to a destination the proxy policy would have blocked.
What happened
Netty’s HTTP/3 codec mishandles HTTP/1 CONNECT authority-form request-targets when converting them to HTTP/3 (CVE-2026-100663, CVSS 8.7). The CONNECT target’s host is emitted as the scheme, the path becomes /, and the HTTP/1 Host header becomes the authority, or the target is dropped entirely. In an HTTP/1-to-HTTP/3 proxy, this lets a client bypass tunnel allow-lists and egress policy: policy enforcement sees one authority while the upstream HTTP/3 peer receives another. The issue is fixed in Netty 4.2.18.Final.
What to do
- Upgrade Netty to 4.2.18.Final on any HTTP/1-to-HTTP/3 proxy or gateway.
- Review proxy tunnel allow-lists and egress logs for CONNECT traffic that resolved to unexpected authorities.
- Where possible, validate CONNECT request-targets against the Host header before proxying.
Management note
Protocol translation layers are classic policy-bypass territory: every translation is a chance for two components to disagree about what a request says. If you proxy between HTTP versions on Netty, patch and audit.