Nettyのnetty-incubator-codec-ohttpにおける複数の脆弱性
| Title |
Nettyのnetty-incubator-codec-ohttpにおける複数の脆弱性
|
| Summary |
netty incubator codec.bhttpはJava言語で実装されたバイナリHTTPパーサーです。このライブラリはJNIを通じてBoringSSLのHPKE Cライブラリを使用し、Oblivious HTTP(RFC 9458)を実装しています。暗号処理のためのネイティブメモリアドレスを導出する際、0.0.22.Finalより前のバージョンは、`hasMemoryAddress()`を通じてメモリアドレスを公開しない直接ByteBufに対するフォールバックパスを提供していました。このフォールバックは`sun.misc.Unsafe`がNettyで利用できない場合に発生します。例えば、JVMが`-Dio.netty.noUnsafe=true`オプションで起動されている場合、SecurityManagerによってUnsafeアクセスが制限されている場合、または非HotSpot JVMで動作している場合が該当します。これらの設定では、Nettyのデフォルト`PooledByteBufAllocator`は`hasMemoryAddress()`がfalseを返す`PooledDirectByteBuf`インスタンスを返します。有効なJVM設定下で、認証されていないネットワーク攻撃者は、細工されたOHTTPリクエストを用いて暗号処理を引き起こすことで、OHTTPゲートウェイが他の同時接続に属するメモリを破損させ、隣接するプールドダイレクトバッファの内容を開示させることが可能です。この破損はAEADタグの検証成功に関係なく発生し、BoringSSLは失敗時に出力バッファをゼロ化します。情報漏洩経路により攻撃者は漏洩データを抽出する暗号鍵を取得できます。これにより、同じNettyバッファアリーナを共有するすべての接続の機密性と完全性が侵害されます。本問題はバージョン0.0.22.Finalで修正されました。
|
| Possible impacts |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアは停止しません。 |
| Solution |
ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date |
June 4, 2026, midnight |
| Registration Date |
June 8, 2026, 12:28 p.m. |
| Last Update |
June 8, 2026, 12:28 p.m. |
|
CVSS3.0 : 緊急
|
| Score |
9.1
|
| Vector |
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected System
| Netty |
|
netty-incubator-codec-ohttp 0.0.22 未満
|
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
Change Log
| No |
Changed Details |
Date of change |
| 1 |
[2026年06月08日] 掲載 |
June 8, 2026, 12:28 p.m. |
NVD Vulnerability Information
CVE-2026-48040
| 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.
|
| Publication Date |
June 5, 2026, 3:16 a.m. |
| Registration Date |
June 5, 2026, 4:11 a.m. |
| Last Update |
June 6, 2026, 6:04 a.m. |
Affected software configurations
| Configuration1 |
or higher |
or less |
more than |
less than |
| cpe:2.3:a:netty:netty-incubator-codec-ohttp:*:*:*:*:*:*:*:* |
|
|
|
0.0.22 |
Related information, measures and tools
Common Vulnerabilities List