🇰🇷 한글 설명
MariaDB Connector/J는 Java 애플리케이션을 MariaDB 및 MySQL 데이터베이스에 연결하는 드라이버입니다. 3.0.0부터 3.3.7, 3.4.5, 3.5.11 이전 버전에서는 OK 패킷 세션 상태 블록, 컬럼 정의 패킷, 텍스트/바이너리 행 데이터 디코더가 수신 버퍼 범위를 검증하지 않고 서버가 선언한 길이를 사용하여 패킷 경계를 넘어 읽기를 수행할 수 있습니다. 이로 인해 JDBC 호출 중 ArrayIndexOutOfBoundsException 또는 IllegalArgumentException이 발생하며 연결 처리가 중단될 수 있습니다.
💡 쉬운 설명
데이터베이스 드라이버가 서버에서 받은 데이터의 길이를 제대로 확인하지 않아, 잘못된 데이터를 받으면 프로그램이 오류로 멈출 수 있습니다. 해당 드라이버를 사용하는 애플리케이션의 연결이 끊기거나 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, decoders for OK packet session-state blocks, column definition packets, text row data, or binary row data used server-declared lengths without confirming that the requested bytes remained in the receive buffer. The decoders could position reads, create sub-buffers, or decode strings beyond the packet boundary. A malicious or compromised server, or a machine-in-the-middle attacker, could trigger unchecked ArrayIndexOutOfBoundsException or IllegalArgumentException failures inside JDBC calls and terminate connection handling. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.
📍 영향받는 시스템
MariaDB Connector/J 3.0.0 ~ 3.3.7 미만, 3.4.0 ~ 3.4.5 미만, 3.5.0 ~ 3.5.11 미만을 사용하는 Java 애플리케이션
⚔️ 공격 벡터
악意적이거나 침해된 DB 서버, 또는 중간자(MITM) 공격자가 조작된 패킷을 전송하여 클라이언트의 JDBC 호출을 실패시키고 연결 처리를 중단시킴
🛡️ 대응 방법
MariaDB Connector/J를 3.3.7, 3.4.5, 3.5.11 이상 버전으로 업데이트
🔧 검증 코드
출력된 jar 파일명의 버전이 3.3.7, 3.4.5, 3.5.11 이상이면 조치 완료이며, 그보다 낮은 버전이면 취약한 상태이므로 업데이트가 필요합니다.
find / -name 'mariadb-java-client*.jar' 2>/dev/null -exec basename {} \;
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server