🔍 CVE-2026-116579

5.9
CVSS Score
MEDIUM
2026-10-26
2026-10-27 16:03
✅ 완료

🇰🇷 한글 설명

Autobahn Python은 Twisted와 asyncio를 지원하는 WebSocket 및 WAMP 구현체입니다. 26.7.1부터 26.10.1 이전 버전에서는 permessage-brotli 기능의 압축 해제 시 출력 크기 제한이 없고, 전체 프레임을 해제한 후에야 maxMessagePayloadSize를 검사하여 메모리 고갈형 서비스 거부(DoS) 공격에 취약합니다. 이 문제는 26.10.1 버전에서 수정되었습니다.

💡 쉬운 설명

인증되지 않은 공격자가 작은 크기의 고압축 WebSocket 메시지를 보내면 서버가 수백 MB의 메모리를 할당해 서비스가 중단될 수 있습니다. compress 옵션으로 permessage-brotli 기능을 켠 서버만 영향을 받습니다.

🇺🇸 원문 (English)

Autobahn Python is a WebSocket and WAMP implementation for Python that supports Twisted and asyncio. From 26.7.1 until 26.10.1, PerMessageBrotli.decompress_message_data in compress_brotli.py calls the Brotli decompressor without an output limit and checks maxMessagePayloadSize only after a complete frame has been inflated. An unauthenticated WebSocket client can send a small, highly compressed frame that allocates hundreds of MiB before rejection, causing memory-exhaustion denial of service on servers that enable the opt-in permessage-brotli feature through the compress extra. Deflate and bzip2 already enforce the remaining output budget and are outside this residual vulnerability. This issue is fixed in version 26.10.1.

📍 영향받는 시스템

Autobahn Python 26.7.1 이상 26.10.1 미만 버전이며, compress extra로 permessage-brotli를 활성화한 서버

⚔️ 공격 벡터

인증 없이 WebSocket 클라이언트가 작고 고압축된 Brotli 프레임을 전송해 서버의 압축 해제 시 메모리를 과도하게 소모하도록 유도

🛡️ 대응 방법

Autobahn Python을 26.10.1 이상으로 업그레이드하거나, 필요하지 않다면 permessage-brotli 기능을 비활성화

🔧 검증 코드

출력된 버전이 26.7.1 이상 26.10.1 미만이면 취약하며, 26.10.1 이상이면 수정된 버전입니다. 명령 결과가 없으면 autobahn이 설치되지 않은 것입니다.

Shell / Script
pip show autobahn 2>/dev/null | grep -i '^version'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Python