CVE-2026-9323General

LOWCVSS 9.2 · CRITICAL

Signal is active with 2 mentions in latest observed window

Immediate actions

  • Patch affected systems immediately

Recommended action window: Monitor and triage in normal cycle

NVD description

The urwid web display backend (urwid/display/web.py) generates web session identifiers (urwid_id) in Screen.start() by concatenating two random.randrange(10**9) calls that use Python's Mersenne Twister PRNG, which is not cryptographically secure. Each call consumes approximately 30 bits of PRNG state, and the Mersenne Twister internal state is approximately 19,937 bits, so an attacker who observes approximately 334 session IDs (for example via the X-Urwid-ID HTTP response header) can fully reconstruct the internal state and predict all past and future session IDs (Path B). The same identifier is also used as the filename of a FIFO created in the world-listable /tmp directory (for example /tmp/urwid375487765176907690.in), so any local user on the host can list /tmp to enumerate active session tokens directly (Path A). With a valid session ID, an attacker can read the victim's terminal screen via the polling endpoint, inject keystrokes into the victim's session (yielding OS-level code execution with the session owner's privileges if the session runs a shell), and inject exit sequences or flood the FIFO to terminate or crash the session. A prior Bandit S311 warning on this usage was suppressed with # noqa: S311 rather than fixed

0.5/ 10 priority

Sources & remediation

Weakness type (CWE)
CWE-338

Priority

LOW

Exploitation

NONE

PoC

NONE

Patch

AVAILABLE

Momentum

NONE

Threat summary

  • Patch or workaround signal is available
  • 2 mentions across 1 observed day

What's happening

  • Patch or workaround mentioned in 1 signal
  • Technical details provided in 2 signals
  • General: 1 classified signal
  • 2 total mentions across 1 day

Deep dive

Activity timeline2 mentions / 1d
01122Mentions · 2026-07-18: 2Patch / Workaround · 2026-07-18: 1Technical Details · 2026-07-18: 207-18
Signal classification2 categories
General
150.0%
Patch
150.0%
Referenced assets2 URLs
Full discourse2 posts
  • Upwind Security MDR@UpwindMDR
    Patch

    🚨Critical - urwid Web Display Backend Session Prediction & Hijack (CVE-2026-9323) urwid's web display backend generates web session IDs by concatenating two random.randrange(10**9) calls from Python's Mersenne Twister PRNG, which is not cryptographically secure. By observing ~334 session IDs (e.g. via the X-Urwid-ID header), an attacker can reconstruct the PRNG state and predict all past and future session IDs. The same ID is also the filename of a FIFO in world-listable /tmp, so any local user can enumerate active tokens. With a valid session ID, an attacker can read the victim's terminal, inject keystrokes (OS-level code execution if the session runs a shell), and crash the session. A prior Bandit S311 warning had been suppressed with # noqa rather than fixed. Only urwid's optional web display backend is affected, not standard terminal TUIs. CVSS 9.2. 👉Update urwid to the release containing fix commit 24acd12 (PR #1128).

    Post summary

    The post describes the session ID prediction vulnerability in urwid’s web display backend (CVE‑2026‑9323), outlines its exploitation potential, and recommends patching to a release containing commit 24acd12.

    00000114
    254 followersView on X
  • Vulmon Vulnerability Feed@VulmonFeeds
    General

    CVE-2026-9323 Weak Session ID Generation and FIFO Enumeration in Urwid Web Display Back... https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-9323 Vulnerability Notification: https://alerts.vulmon.com/?utm_source=twitter&utm_medium=social&utm_campaign=2102281&utm_content=3

    Post summary

    The post simply announces the CVE-2026-9323 vulnerability with a brief description and links to an external notification, offering no actionable PoC, exploit, or mitigation details.

    00000111
    4.1K followersView on X

Explore more