🇰🇷 한글 설명
netty incubator codec.bhttp 라이브러리에서 특정 JVM 설정 시 메모리 주소 유도 과정의 결함으로 인해 발생합니다. 인증되지 않은 공격자가 조작된 OHTTP 요청을 통해 다른 연결의 메모리를 오염시키거나 인접한 버퍼의 내용을 유출할 수 있습니다. 이는 연결의 기밀성과 무결성을 심각하게 침해합니다.
💡 쉬운 설명
해커가 특수하게 만든 요청을 보내면 컴퓨터의 메모리 영역을 망가뜨리거나 다른 사용자의 비밀 정보를 훔쳐볼 수 있는 보안 약점입니다. 특히 보안 설정이 강화된 특정 환경에서 이 문제가 발생하여 데이터가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
netty incubator codec.bhttp versions prior to 0.0.22.Final
⚔️ 공격 벡터
Unauthenticated network attacker sending crafted OHTTP requests to an OHTTP gateway
🛡️ 대응 방법
Update netty incubator codec.bhttp to version 0.0.22.Final or later
🔧 검증 코드
출력된 라이브러리 버전이 0.0.22.Final 미만인지 확인하십시오.
mvn dependency:list | grep 'netty-incubator-codec-bhttp'