🇰🇷 한글 설명
Autobahn Python의 WebSocket 엔드포인트에서 압축된 프레임의 크기 제한을 검증할 때, 압축 해제 후의 실제 메시지 크기를 재검증하지 않는 취약점이 발견되었습니다. 공격자가 설정된 메시지 크기 제한을 초과하도록 압축된 프레임을 전송할 경우, 과도한 메모리 할당이 발생하여 리소스 고갈을 유발할 수 있습니다. 이 문제는 버전 26.7.1에서 수정되었습니다.
💡 쉬운 설명
압축된 데이터를 보낼 때 실제 풀었을 때의 크기를 제대로 확인하지 않아 발생하는 문제입니다. 공격자가 아주 작은 압축 파일을 보내서 컴퓨터의 메모리를 가득 채워 시스템을 느리게 하거나 멈추게 할 수 있습니다.
🇺🇸 원문 (English)
Autobahn Python is a WebSocket and WAMP implementation for Python that supports Twisted and asyncio. Prior to 26.7.1, WebSocket endpoints that accept permessage-deflate and rely on maxMessagePayloadSize enforce that limit against the compressed frame length before inflation but do not recheck the decompressed message size before delivery. A remote unauthenticated client can send a valid compressed frame below the configured wire-size limit that expands beyond the application message limit, causing oversized data to be allocated, joined, validated, and passed to application callbacks. This can create resource-exhaustion pressure, but the advisory does not establish confidentiality or integrity impact. This issue is fixed in version 26.7.1.
📍 영향받는 시스템
Autobahn Python 26.7.1 미만 버전
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 압축된 WebSocket 프레임을 전송하여 리소스 고갈 유도
🛡️ 대응 방법
Autobahn Python을 버전 26.7.1 이상으로 업데이트
🔧 검증 코드
출력된 Version이 26.7.1보다 낮으면 취약한 상태입니다.
pip show autobahn | grep Version