Out-of-bounds read in netty-incubator-codec-ohttp
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
Summary
The netty incubator codec.bhttp is a java language binary http parser. The library implements Oblivious HTTP (RFC 9458) using BoringSSL's HPKE C library via JNI. When deriving native memory addresses for cryptographic operations versions prior to 0.0.22.Final provide a fallback path for direct ByteBufs that do not expose their memory address through `hasMemoryAddress()`. This fallback occurs when `sun.misc.Unsafe` is unavailable to Netty — for example, when the JVM is started with `-Dio.netty.noUnsafe=true`, when a SecurityManager restricts Unsafe access, or when running on non-HotSpot JVMs. In these configurations, Netty's default `PooledByteBufAllocator` returns `PooledDirectByteBuf` instances for which `hasMemoryAddress()` returns false. Under the enabling JVM configuration, an unauthenticated network attacker can cause the OHTTP gateway to corrupt memory belonging to other concurrent connections and disclose the contents of adjacent pooled direct buffers by triggering cryptographic operations with crafted OHTTP requests. The corruption occurs regardless of whether the AEAD tag verification succeeds, as BoringSSL zeroizes the output buffer on failure. The information disclosure path provides the attacker with the encryption key needed to extract the leaked data. This violates the confidentiality and integrity of all connections sharing the same Netty buffer arena. Version 0.0.22.Final fixes the issue.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| netty | netty-incubator-codec-ohttp | before 0.0.22.Final | 0.0.22.Final | Patch available | CNA |
| — | io.netty.incubator:netty-incubator-codec-ohttp-hpke-native-boringssl (Maven) | before 0.0.22.Final | 0.0.22.Final | Patch available | GHSA-32hf-8jw3-v4qq |
- netty-incubator-codec-ohttp Vendornetty Affected before 0.0.22.Final Fixed in 0.0.22.Final Patch available CNA
- io.netty.incubator:netty-incubator-codec-ohttp-hpke-native-boringssl (Maven) Vendor— Affected before 0.0.22.Final Fixed in 0.0.22.Final Patch available GHSA-32hf-8jw3-v4qq
Remediation
- Fix · CNA netty-incubator-codec-ohttp (netty) Fixed in 0.0.22.Final
- Fix · GHSA-32hf-8jw3-v4qq io.netty.incubator:netty-incubator-codec-ohttp-hpke-native-boringssl (Maven) Fixed in 0.0.22.Final Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-48040
- 2026-10-03 Alias added: GHSA-32hf-8jw3-v4qq
References
Patch 1
Advisory 2
More Netty-incubator-codec-ohttp vulnerabilities
- TI-2024-23951 netty-incubator-codec-ohttp's BoringSSLAEADContext Repeats Nonces CVSS 3.1CRITICAL 9.1
- TI-2024-27053 Absent Input Validation in BinaryHttpParser in the netty incubator codec.bhttp CVSS 3.1HIGH 8.1
- TI-2026-29826 netty-incubator-codec-ohttp's HPKEContext operations may produce empty byte[] on failures CVSS 4.0MEDIUM 6.9
Sources
- CVE-2026-48040 · CVE Program
- CVE-2026-48040 · NVD
- FIRST EPSS
- GHSA-32hf-8jw3-v4qq · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences