CVE-2026-21452 in msgpack-java
요약
\~에 의해 VulDB • 2026. 05. 30.
Java용 MessagePack은 Java를 위한 직렬화 구현체입니다. 0.9.11 이전 버전의 MessagePack에서는 공격자가 제어하는 페이로드 길이를 가진 EXT32 객체를 포함하는 .msgpack 파일을 역직렬화할 때 서비스 거부(Denial-of-Service, DoS) 취약점이 존재합니다. MessagePack-Java는 확장 헤더를 지연 파싱하지만, 확장 데이터를 실제화할 때 선언된 EXT 페이로드 길이를 신뢰합니다. ExtensionValue.getData()가 호출되면 라이브러리는 상한선을 적용하지 않고 선언된 길이의 바이트 배열을 할당하려고 시도합니다. 따라서 수바이트 크기의 악성 .msgpack 파일로도 무제한 힙 할당을 유발하여 JVM 힙 고갈, 프로세스 종료 또는 서비스 이용 불가 상태를 초래할 수 있습니다. 이 취약점은 모델 로딩/역직렬화 중에 트리거되므로, 원격 공격에 적합한 모델 형식 취약점입니다. 이 취약점은 Java용 MessagePack을 사용하여 신뢰할 수 없는 .msgpack 모델 파일을 역직렬화하는 애플리케이션에 대한 원격 서비스 거부 공격을 가능하게 합니다. 공격자가 제어하는 과도하게 큰 페이로드 길이를 가진 EXT32 객체를 포함하는 특별히 제작된 구문적으로 유효한 .msgpack 파일은 역직렬화 중에 무제한 메모리 할당을 유발할 수 있습니다. 모델 파일이 로드되면 라이브러리는 선언된 길이 메타데이터를 신뢰하고 해당 크기의 바이트 배열을 할당하려고 시도하여, 빠른 힙 고갈, 과도한 가비지 컬렉션 또는 OutOfMemoryError와 함께 즉각적인 JVM 종료를 초래합니다. 이 공격은 비정상적인 바이트, 사용자 상호작용 또는 높은 권한이 필요 없으며, .msgpack 아티팩트를 받거나 가져오는 모델 레지스트리, 추론 서비스, CI/CD 파이프라인, 클라우드 기반 모델 호스팅 플랫폼 등 실제 환경에서 원격으로 악용될 수 있습니다. 악성 파일이 매우 작으면서도 유효하기 때문에 기본 검증 및 스캔 메커니즘을 우회할 수 있으며, 이로 인해 서비스 전체가 이용 불가 상태가 되고 프로덕션 시스템에서 연쇄 장애가 발생할 수 있습니다. 버전 0.9.11에서 이 취약점이 수정되었습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.