🇰🇷 한글 설명
RabbitMQ Java 클라이언트 라이브러리에서 발생한 취약점으로, 인증 전 단계에서 조작된 데이터 길이를 수신할 경우 과도한 메모리를 할당하게 됩니다. 공격자가 매우 큰 데이터 길이를 선언한 패킷을 보내면 약 2GB의 메모리 할당을 유도하여 OutOfMemoryError를 발생시킬 수 있습니다. 이로 인해 JVM이 종료되어 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
해커가 가짜로 아주 큰 데이터가 들어온다고 속이는 신호를 보내면, 프로그램이 이를 처리하려다 메모리를 전부 써버려 멈추게 됩니다. 이로 인해 서버가 작동을 멈추고 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java uses ValueReader.readBytes to accept a wire-declared contentLength below Integer.MAX_VALUE and allocate a byte array before checking the bytes available in the frame. A malicious AMQP peer can send a LongString or byte-array field with type tag S and a declared length such as 0x7FFFFFFE during the pre-authentication connection.start server-properties table, causing an approximately 2 GB allocation and OutOfMemoryError before readFully consumes data. The resulting memory exhaustion can terminate the JVM and cause denial of service. This issue is fixed in version 5.33.1.
📍 영향받는 시스템
RabbitMQ Java client library versions prior to 5.33.1
⚔️ 공격 벡터
인증 전 단계에서 조작된 길이(LongString 또는 byte-array)를 포함한 AMQP 패킷 전송
🛡️ 대응 방법
RabbitMQ Java client 라이브러리를 5.33.1 버전 이상으로 업데이트
🔧 검증 코드
출력된 결과에서 rabbitmq-client의 버전을 확인하여 5.33.1 미만인지 체크
mvn dependency:list | grep rabbitmq-client
💻 영향받는 소프트웨어
IBM WebSphere Application Server