PT-2026-60967 · Pypi+1 · Urwid+1

·

CVE-2026-9323

·

Published

2026-07-18

·

Updated

2026-08-24

CVSS v4.0

9.2

Critical

VectorAV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Name of the Vulnerable Software and Affected Versions urwid (affected versions not specified)
Description The web display backend in urwid/display/web.py uses Python's Mersenne Twister PRNG to generate web session identifiers urwid id within the Screen.start() function. Because this PRNG is not cryptographically secure, an attacker observing approximately 334 session IDs, such as those found in the X-Urwid-ID HTTP response header, can reconstruct the internal state and predict all past and future session IDs. Additionally, these identifiers are used as filenames for FIFOs created in the world-listable /tmp directory, allowing any local user to enumerate active session tokens. A valid session ID enables an attacker to read the victim's terminal screen via the polling endpoint, inject keystrokes—potentially leading to OS-level code execution if a shell is running—or crash the session by flooding the FIFO.
Recommendations Update urwid to the release containing fix commit 24acd12. As a temporary mitigation, restrict access to the web display backend or avoid using it if not strictly necessary.

Exploit

Fix

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

ALSA-2026:58561
ALSA-2026:58562
ALSA-2026:58952
AZL-92916
CVE-2026-9323
GHSA-RJWP-G85X-GMJV
OESA-2026-3193
OPENSUSE-SU-2026:11356-1
RHSA-2026:57637
RHSA-2026:57638
RHSA-2026:58561
RHSA-2026:58562
RHSA-2026:58952
RHSA-2026:58953
RHSA-2026:58954
RHSA-2026:58955
RHSA-2026:59198
RHSA-2026:60353
SUSE-SU-2026:3425-1
SUSE-SU-2026:3460-1

Affected Products

Rocky Linux
Urwid