Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify OHTTP gateway running pre-0.0.22.Final under noUnsafe JVM config
-
DeliverySend crafted OHTTP requests to trigger HPKE AEAD operation
-
ExploitFallback path resolves base ByteBuffer address without readerIndex/writerIndex offset
-
ExecutionBoringSSL reads and writes adjacent pooled off-heap buffer memory
-
PersistExtract HPKE key material from out-of-bounds read of adjacent buffer slot
-
ImpactDecrypt captured OHTTP sessions using disclosed key
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two concurrent conditions: the target must be running netty-incubator-codec-ohttp prior to 0.0.22.Final, and the hosting JVM must be configured so that |
| Impact | The CVSS 4.0 score of 6.8 (Medium) with vector AV:N/AC:L/AT:N/PR:N/UI:N reflects network-reachable, low-complexity exploitation with no authentication required, yielding VC:H and VA:H on the vulnerable system. However, the AT:N (No Attack Requirements) designation is in direct tension with the description's explicit prerequisite of a non-default JVM configuration: the vulnerable fallback path is only reached when the JVM is started with |
| Exploit ScenarioDerived | An attacker identifies an Oblivious HTTP gateway running netty-incubator-codec-ohttp prior to 0.0.22.Final on a JVM started with |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 04, 2026
Incorrect native memory address resolution in Netty's Oblivious HTTP (OHTTP) BoringSSL JNI bridge allows unauthenticated remote attackers to corrupt memory belonging to concurrent connections and disclose the contents of adjacent pooled direct buffers - including HPKE encryption key material - on affected OHTTP gateways. The flaw exists in versions prior to 0.0.22.Final of netty-incubator-codec-ohttp and is only reachable when the JVM is configured to deny sun.misc.Unsafe access, causing the vulnerable fallback address-resolution path to activate. This directly undermines the confidentiality guarantees Oblivious HTTP is designed to provide; no public exploit code exists and the vulnerability is not listed in the CISA KEV catalog (CVSS 4.0 E:U).
RemediationAI
The vendor-released patch is version 0.0.22.Final; upgrade the netty-incubator-codec-ohttp Maven or Gradle dependency to 0.0.22.Final or later. The fix commit is at https://github.com/netty/netty-incubator-codec-ohttp/commit/7ad38d5cc2827af7e067e5c1e1ac37cd4566dad9 and the security advisory at https://github.com/netty/netty-incubator-codec-ohttp/security/advisories/GHSA-32hf-8jw3-v4qq. If immediate patching is not possible, a targeted workaround is to ensure the JVM hosting the OHTTP gateway does not use -Dio.netty.noUnsafe=true, does not apply a SecurityManager policy blocking Unsafe access, and runs on a standard HotSpot JVM - this prevents the fallback code path from activating entirely. Trade-off: removing these JVM restrictions may weaken other security controls if they were intentionally applied; evaluate whether Unsafe restrictions serve other hardening goals in your environment before removing them.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected library (CPE: cpe:2.3:a:netty:netty-incubator-codec-ohttp) implements Oblivious HTTP per RFC 9458 using BoringSSL's HPKE C implementation via JNI. Cryptographic operations require passing raw native (off-heap) memory addresses of Netty ByteBuf objects directly into BoringSSL's C routines. When hasMemoryAddress() returns true, Netty exposes the correct raw pointer; the vulnerability (CWE-125, Out-of-bounds Read - though the impact also encompasses out-of-bounds writes) lies in the fallback path that activates for PooledDirectByteBuf instances when sun.misc.Unsafe is unavailable: the old memory_address(buffer.internalNioBuffer(0, buffer.capacity())) call returned the base address of the underlying java.nio.ByteBuffer without adding the buffer's current readerIndex or writerIndex offset. BoringSSL AEAD seal/open operations therefore targeted position 0 of the underlying off-heap buffer rather than the actual data region, reading from and writing into adjacent pooled memory. The fix (commit 7ad38d5) introduces readerMemoryAddress() and writerMemoryAddress() helpers in BoringSSL.java that correctly add the buffer's current index before passing the address to JNI, and updates callers in BoringSSLAEADContext.java and BoringSSLCryptoOperation.java accordingly.
Know when Netty gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N/E:U
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Netty before 4.1.42.Final mishandles whitespace before the colon in HTTP headers (such as a "Transfer-Encoding : chunked
Certificate revocation-check bypass in the Netty network framework's OCSP client (io.netty:netty-handler-ssl-ocsp) affec
netty-incubator-codec-ohttp is the OHTTP implementation for netty. Rated critical severity (CVSS 9.1), this vulnerabilit
The netty incubator codec.bhttp is a java language binary http parser. Rated high severity (CVSS 8.1), this vulnerabilit
Netty, an asynchronous, event-driven network application framework, has a vulnerability starting in version 4.1.91.Final
Memory exhaustion in Netty's SctpMessageCompletionHandler (netty-transport-sctp) allows unauthenticated remote peers to
Compression-amplification denial of service in the Netty network framework (versions prior to 4.1.136.Final and 4.2.16.F
Memory-amplification denial of service in the Netty network framework (SPDY/3.1 codec) prior to 4.1.136.Final and 4.2.16
Memory-exhaustion denial of service in Netty's HTTP/3 codec (Http3FrameCodec) affects all releases prior to 4.2.16.Final
Netty's HTTP CORS handler silently rewrites the Vary response header to Vary: Origin in releases before 4.1.137.Final an
Denial of service in the Netty HTTP/3 codec (io.netty:netty-codec-http3) prior to version 4.2.15.Final allows remote una
EUVD-2026-34308
GHSA-32hf-8jw3-v4qq
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB