🔍 CVE-2026-103022

5.3
CVSS Score
MEDIUM
2026-11-06
2026-11-06 22:17
✅ 완료

🇰🇷 한글 설명

Urwid 4.0.7 이전 버전의 urwid/display/web.py에서 handle_short_request() 함수가 POST 입력의 문자 인코딩과 폴링 출력의 UTF-8 디코딩을 예외 처리 없이 수행합니다. 유효한 X-Urwid-ID 세션 토큰을 가진 원격 공격자는 비ASCII 데이터를 전송해 CGI 핸들러를 종료시키고, 열린 파일 디스크립터 누수로 웹 디스플레이 인터페이스에 대한 서비스 거부를 유발할 수 있습니다. 이 문제는 4.0.7 버전에서 수정되었습니다.

💡 쉬운 설명

Urwid 라이브러리의 웹 화면 기능이 잘못된 문자 데이터를 처리하지 못해, 인증된 사용자가 특정 입력으로 서비스를 멈추게 할 수 있습니다. 라이브러리를 최신 버전으로 업데이트하면 해결됩니다.

🇺🇸 원문 (English)

Urwid is a console user interface library for Python. Prior to 4.0.7, handle_short_request() in urwid/display/web.py performs unguarded character encoding on POST input and unguarded UTF-8 decoding on polling update socket output. A remote attacker who obtains a valid X-Urwid-ID session token can submit non-ASCII POST data that raises UnicodeEncodeError, while non-UTF-8 polling output raises UnicodeDecodeError, causing the CGI handler to return an error and terminate request processing. The POST exception path also leaves an opened file descriptor unclosed for the CGI process lifetime, so repeated requests can cause denial of service for the web display interface. This issue is fixed in version 4.0.7.

📍 영향받는 시스템

Python urwid 라이브러리 4.0.7 미만 버전 (web 디스플레이 기능 사용 시)

⚔️ 공격 벡터

유효한 X-Urwid-ID 세션 토큰을 확보한 원격 공격자가 비ASCII POST 데이터를 반복 전송하여 CGI 처리 중단 및 파일 디스크립터 누수를 유발

🛡️ 대응 방법

urwid를 4.0.7 이상으로 업그레이드 (예: pip install --upgrade 'urwid>=4.0.7')

🔧 검증 코드

출력된 Version 값이 4.0.7 미만이면 취약한 버전이므로 업그레이드가 필요하고, 4.0.7 이상이면 수정된 버전입니다 (urwid가 설치되지 않았다면 결과가 비어 있습니다).

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

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Python