Cyber Resilience

CVE-2026-9323

Public PoC
Published
18 July 2026
Modified
23 July 2026
CVSS Score v4 9.2
Click a component to see what it means
Raw vectorCVSS:4.0/AV: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
EPSS Score 0.0042 35th percentile
Risk Priority 70 floored blend · peak EPSS

Summary

CVE-2026-9323 is a critical-severity PRNG (CWE-338) vulnerability. Its CVSS base score is 9.2 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 35th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to IA-5 (Authenticator Management) and SC-23 (Session Authenticity) — see the control section below for these in your framework.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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

CWE(s)

Related Threats

MITRE ATT&CK Enterprise TechniquesAI

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1059.004 Unix Shell Execution
Adversaries may abuse Unix shell commands and scripts for execution.
Why these techniques?

Weak PRNG enables session token prediction/hijacking on exposed web backend (T1190), directly facilitating keystroke injection for Unix shell command execution (T1059.004).

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

Likely ATT&CK TechniquesAI

Techniques this vulnerability likely enables, inferred from its description, weakness type, and attributed-actor tradecraft. Confidence is per-technique.

T1563 Remote Service Session Hijacking Lateral Movementconfidence: HIGH
Predictable session IDs enable hijacking of active urwid web sessions to read screens or inject input.
T1674 Input Injection Executionconfidence: HIGH
Valid session ID directly allows keystroke injection into the victim's terminal session.
T1083 File and Directory Discovery Discoveryconfidence: MEDIUM
Session tokens stored as world-readable /tmp filenames enable local enumeration of active sessions.
inferred from description + CWE · MITRE ATT&CK Enterprise v19.0

CVEs Like This One

CVE-2024-40762Shared CWE-338
CVE-2026-11832Shared CWE-338
CVE-2025-46653Shared CWE-338
CVE-2025-66630Shared CWE-338
CVE-2026-61500Shared CWE-338
CVE-2024-58041Shared CWE-338
CVE-2025-40905Shared CWE-338
CVE-2026-40514Shared CWE-338
CVE-2026-56141Shared CWE-338
CVE-2025-15578Shared CWE-338

Affected Assets

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)
  • IA-5 Authenticator Management
  • SC-23 Session Authenticity
  • AC-3 Access Enforcement
Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 3 hardening rules · 3 OS baselines
Validate
Prove the fix (OWASP ASVS)
  • V7.2.3
  • V11.5.1

Mitigating Controls (NIST 800-53 r5) AI

prevent

Requires cryptographic-strength generation and management of authenticators (session IDs), directly blocking the Mersenne Twister PRNG weakness that allows state reconstruction after ~334 observations.

prevent

Mandates protection of session authenticity, preventing prediction and hijacking of urwid_id tokens used for screen reads, keystroke injection, and code execution.

prevent

Enforces access decisions on the world-readable /tmp FIFO files containing session IDs, limiting local enumeration (Path A) even when the token itself is predictable.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices explicitly require cryptographically strong RNG selection and usage in security contexts.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Mandates use of approved cryptographic controls, directly requiring cryptographically strong RNGs.

detects

Security testing can detect use of weak random number generators.

prevents

Secure SDLC processes should catch weak PRNG usage during design and code review.

prevents

Application security requirements can specify cryptographically strong random number generation.

prevents

Secure engineering principles include selection of appropriate cryptographic primitives.

prevents

Secure coding standards prohibit use of weak PRNGs in security contexts.

References