CVE-2026-9323 in urwid
요약
\~에 의해 VulDB • 2026. 07. 18.
urwid 웹 디스플레이 백엔드(urwid/display/web.py)는 Screen.start()에서 Python의 Mersenne Twister PRNG를 사용하는 두 번의 random.randrange(10**9) 호출을 연결하여 웹 세션 식별자(urwid_id)를 생성합니다. 이는 암호학적으로 안전하지 않습니다. 각 호출은 약 30비트의 PRNG 상태를 소모하며, Mersenne Twister 내부 상태는 약 19,937비트이므로, 공격자가 약 334개의 세션 ID(예: X-Urwid-ID HTTP 응답 헤더를 통해)를 관찰하면 내부 상태를 완전히 복원하고 모든 과거 및 미래의 세션 ID를 예측할 수 있습니다(Path B). 동일한 식별자는 또한 세계 읽기 가능한 /tmp 디렉토리(/tmp/urwid375487765176907690.in 등)에 생성된 FIFO 파일명으로 사용되므로, 호스트상의 모든 로컬 사용자는 /tmp를 나열하여 활성 세션 토큰을 직접 열거할 수 있습니다(Path A). 유효한 세션 ID가 있는 공격자는 폴링 엔드포인트를 통해 피해자의 터미널 화면을 읽거나, 피해자 세션에 키스트rokes를 주입(세션이 셸에서 실행되는 경우 세션 소유자의 권한으로 OS 레벨 코드 실행 가능)할 수 있으며, 종료 시퀀스를 주입하거나 FIFO를 폭주시켜 세션을 종료 또는 충돌시킬 수 있습니다. 이 사용 사례와 관련된 이전의 Bandit S311 경고는 수정되지 않고 # noqa: S311로 억제되었습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.