🇰🇷 한글 설명
RabbitMQ의 Stream Management 기능에서 권한이 낮은 관리 사용자가 대량의 메모리 할당을 유도하여 서비스를 중단시킬 수 있는 취약점입니다. 공격자가 특정 API에 조작된 JSON 데이터를 전송하면, 권한 검사 이전에 과도한 리소스가 할당되어 컨테이너가 종료될 수 있습니다.
💡 쉬운 설명
권한이 낮은 사용자가 특수한 요청을 보내 서버의 메모리를 순식간에 가득 채워 시스템을 멈추게 할 수 있습니다. 마치 작은 종이 한 장을 넣었는데 서버가 감당하지 못해 꺼져버리는 것과 같습니다.
🇺🇸 원문 (English)
RabbitMQ is a messaging and streaming broker. From 4.1.0 until 4.3.3, 4.2.9, and 4.1.11, Stream Management Super-Stream Binding Keys Allocation Allows Low-Privilege Node Denial of Service. rabbitMQ 4.3.1 with rabbitmqstreammanagement enabled accepts PUT /api/stream/super-streams/{vhost}/{name} requests from an authenticated management user that can access the target vhost. When the request body contains the binding-keys field, the handler parses the attacker-controlled comma-separated string and builds the full stream-name list before checking whether the user has permission to configure the resulting streams. A low-privileged management user with vhost access but no configure, write, or read permission can therefore force large transient allocations before the resource permission check. In a 768 MB memory-limited container, one HTTP PUT with about 4.5 MB of JSON body killed the RabbitMQ container with Docker state exited true An authenticated low-privileged management user can kill a memory-limited RabbitMQ node with one HTTP This issue is fixed in versions 4.3.3, 4.2.9, and 4.1.11.
📍 영향받는 시스템
RabbitMQ 4.1.0 ~ 4.3.3, 4.2.9, 4.1.11 (rabbitmqstreammanagement 활성화 시)
⚔️ 공격 벡터
인증된 저권한 관리 사용자가 조작된 binding-keys 필드를 포함한 HTTP PUT 요청을 API로 전송
🛡️ 대응 방법
RabbitMQ를 최신 패치 버전인 4.3.3, 4.2.9 또는 4.1.11 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 범위(4.1.0-4.3.3, 4.2.9, 4.1.11)에 포함되는지 확인하십시오.
rabbitmqctl version 2>/dev/null || rabbitmq-server --version 2>/dev/null
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
Windows iSCSI Target Service