🇰🇷 한글 설명
Eclipse Vert.x의 PostgreSQL 메시지 디코더가 메시지 길이를 검증 없이 읽어 들여 발생하는 취약점입니다. 공격자가 조작된 메시지 헤더를 보내면 클라이언트가 과도한 메모리를 할당하게 되어 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
데이터베이스가 가짜로 아주 큰 데이터가 올 것이라고 속이면, 프로그램이 이를 준비하느라 메모리를 전부 써버려 멈추는 현상입니다. 악의적인 서버가 연결을 시도할 때 발생할 수 있습니다.
🇺🇸 원문 (English)
In Eclipse Vert.x versions [4.0.0, 4.5.34] or [5.0.0,5.0.12] or [5.1.0,5.1.9] or [5.2.0, 5.2.0], the PostgreSQL message decoder reads the 4-byte message length field from the PostgreSQL wire protocol without any maximum validation. A malicious, compromised, or man-in-the-middle PostgreSQL server can send a message header with the length field set to an extremely large value (up to Integer.MAX_VALUE), causing the decoder to accumulate subsequent TCP data into a composite buffer without bound, leading to unbounded memory allocation on the client and an out-of-memory crash. This occurs before authentication completes.
The impacted component is io.vertx:vertx-pg-client.
📍 영향받는 시스템
io.vertx:vertx-pg-client [4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, 5.2.0]
⚔️ 공격 벡터
악의적인 또는 중간자 공격(MitM)을 통해 조작된 PostgreSQL 서버가 매우 큰 길이 값을 가진 메시지 헤더를 전송
🛡️ 대응 방법
Vert.x를 취약점이 해결된 최신 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위의 vertx-pg-client가 포함되어 있다면 해당 취약점에 노출된 상태입니다.
mvn dependency:tree | grep -E 'vertx-pg-client:[0-4]\.|vertx-pg-client:5\.[0-1]\.|vertx-pg-client:5\.2\.0'