🇰🇷 한글 설명
Eclipse Vert.x의 MySQL 클라이언트에서 서버가 선언한 컬럼 개수에 대해 상한선 검증 없이 배열을 미리 할당하는 취약점이 발견되었습니다. 공격자가 조작된 결과 세트 패킷을 보내 매우 큰 컬럼 개수를 전달하면, 대규모 힙 메모리 할당 시도로 인해 OutOfMemoryError가 발생하며 애플리케이션 전체가 중단될 수 있습니다.
💡 쉬운 설명
데이터베이스가 가짜로 엄청나게 많은 데이터 칸이 있다고 속이면, 프로그램이 이를 다 담으려다 메모리가 부족해져서 멈춰버리는 문제입니다. 이로 인해 서비스가 완전히 중단될 수 있습니다.
🇺🇸 원문 (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 Vert.x MySQL client (vertx-mysql-client) pre-allocates an array for column definitions based on a server-declared column count with no upper-bound validation. A malicious or compromised MySQL server, or an attacker with man-in-the-middle positioning, can send a crafted result set packet with an extremely large column count, causing the client to attempt a massive heap allocation. The resulting OutOfMemoryError crashes the Netty event loop thread, causing a complete denial of service for all connections and verticles in the Vert.x application.
The impacted component is io.vertx:vertx-mysql-client.
📍 영향받는 시스템
io.vertx:vertx-mysql-client [4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, 5.2.0]
⚔️ 공격 벡터
악의적인 MySQL 서버 또는 중간자 공격(MitM)을 통한 조작된 결과 세트 패킷 전송
🛡️ 대응 방법
Vert.x를 취약점이 해결된 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 사용 중인 vertx-mysql-client의 버전을 확인하여 취약 범위에 해당하는지 체크합니다.
mvn dependency:list | grep vertx-mysql-client