CVE-2024-40642 in netty-incubator-codec-ohttp
요약
\~에 의해 VulDB • 2026. 06. 05.
netty incubator codec.bhttp은 Java 언어 기반의 바이너리 HTTP 파서입니다. 영향을 받는 버전에서 `BinaryHttpParser` 클래스는 입력 값을 적절하게 검증하지 않아 공격자가 파싱된 출력 결과로부터 구성된 HTTP 요청을 거의 완전히 제어할 수 있습니다. 공격자는 여러 문제를 개별적으로 악용하여 HTTP 리퀘스트 스머핑, 디센크(desync) 공격, HTTP 헤더 인젝션, 리퀘스트 큐 중독(caching poisoning), 캐싱 공격 및 서버 사이드 리퀘스트 포지리(SSRF)를 포함한 다양한 인젝션 공격을 수행할 수 있습니다. 또한 공격자는 여러 문제를 결합하여 다른 텍스트 기반 프로토콜에 대해 정형화된 메시지를 생성함으로써 HTTP 프로토콜을 넘어선 공격으로 이어질 수도 있습니다. `BinaryHttpParser` 클래스는 수신된 요청의 관련 파싱 작업을 대부분 수행하는 `readRequestHead` 메서드를 구현합니다. 데이터 구조는 값을 변수 길이 정수(prefix)로 접두사 처리합니다. 아래 파싱 코드는 먼저 접두사가 붙은 변수 길이 정수에서 값들의 길이를 가져옵니다. 모든 길이를 수집하고 인덱스를 계산한 후, 파서는 `ByteBuf`의 해당 슬라이스를 String으로 캐스팅합니다. 마지막으로 이러한 값을 추가적인 파싱이나 검증이 발생하지 않는 새로운 `DefaultBinaryHttpRequest` 객체에 전달합니다. 일부 메서드는 부분적으로만 검증되며 다른 값들은 전혀 검증되지 않습니다. 바이너리 HTTP 데이터에 대한 입력 검증을 netty에 의존하는 소프트웨어는 다양한 인젝션 및 프로토콜 기반 공격으로부터 취약할 수 있습니다. 이 문제는 버전 0.0.13.Final에서 해결되었습니다. 사용자는 업그레이드를 권장합니다. 해당 취약점에 대한 알려진 우회 방법은 없습니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.