Every CVE Search/ Get API key

CVE-2026-9323

Insecure PRNG and Information Exposure in urwid Web Display Backend

9.2 CriticalFix available

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

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.71%Up 0.3 points since Jul 19, 2026
90%50%10%1%

What each source reports

CVE List Score used 9.2

Insecure PRNG and Information Exposure in urwid Web Display Backend

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

Record
CVE-2026-9323
CVSS 4.0
9.2 CriticalCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-338
Updated
2026-11-02
EUVDEUVD-2026-45381 9.2

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

Record
EUVD-2026-45381
CVSS 4.0
9.2 CriticalCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-83x9-8wvq-rrcp 9.2

Duplicate Advisory: urwid: Insecure PRNG and Information Exposure in Web Display Backend

Duplicate Advisory

This advisory has been withdrawn because it is a duplicate of GHSA-rjwp-g85x-gmjv. This link is maintained to preserve external references.

Original 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

Record
GHSA-83x9-8wvq-rrcp
CVSS 4.0
9.2 CriticalCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-338
Updated
2026-11-05
NVD 9.2

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

Record
CVE-2026-9323
CVSS 4.0
9.2 CriticalCVSS: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
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-338
Updated
2026-11-02
OSVBELL-CVE-2026-9323 8.1
Record
BELL-CVE-2026-9323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSV 9.2

Insecure PRNG and Information Exposure in urwid Web Display Backend

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

Record
CVE-2026-9323
CVSS 4.0
9.2 CriticalCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-338
Updated
2026-11-02
Show 26 moreShow less
OSVDEBIAN-CVE-2026-9323 9.2

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

Record
DEBIAN-CVE-2026-9323
CVSS 4.0
9.2 CriticalCVSS: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
Updated
2026-11-02
OSVGHSA-83x9-8wvq-rrcp 9.2

Duplicate Advisory: urwid: Insecure PRNG and Information Exposure in Web Display Backend

Duplicate Advisory

This advisory has been withdrawn because it is a duplicate of GHSA-rjwp-g85x-gmjv. This link is maintained to preserve external references.

Original 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

Record
GHSA-83x9-8wvq-rrcp
CVSS 4.0
9.2 CriticalCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-338
Updated
2026-11-05
OSVOESA-2026-3193 8.1

python-urwid security update

Urwid is a console user interface library for Python. It includes many features useful for text console application developers

Security Fix(es):

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(CVE-2026-9323)

Record
OESA-2026-3193
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:57637 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:57637
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:57638 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:57638
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:58561 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:58561
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:58562 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:58562
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:58952 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:58952
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:58953 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:58953
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:58954 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:58954
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:58955 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:58955
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:59198 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:59198
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:60353 8.1

Red Hat Security Advisory: python-urwid security update

Record
RHSA-2026:60353
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:58561 8.1

Important: python-urwid security update

Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.

Security Fix(es):

  • urwid: Urwid: Predictable session IDs lead to remote code execution and information disclosure (CVE-2026-9323)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:58561
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:58562 8.1

Important: python-urwid security update

Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.

Security Fix(es):

  • urwid: Urwid: Predictable session IDs lead to remote code execution and information disclosure (CVE-2026-9323)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:58562
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:58952 8.1

Important: python-urwid security update

Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.

Security Fix(es):

  • urwid: Urwid: Predictable session IDs lead to remote code execution and information disclosure (CVE-2026-9323)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:58952
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-9323 9.2

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

Record
UBUNTU-CVE-2026-9323
CVSS 4.0
9.2 CriticalCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVALSA-2026:58561 No score

Important: python-urwid security update

Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.

Security Fix(es):

  • urwid: Urwid: Predictable session IDs lead to remote code execution and information disclosure (CVE-2026-9323)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:58561
Updated
2026-11-02
OSVALSA-2026:58562 No score

Important: python-urwid security update

Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.

Security Fix(es):

  • urwid: Urwid: Predictable session IDs lead to remote code execution and information disclosure (CVE-2026-9323)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:58562
Updated
2026-11-02
OSVALSA-2026:58952 No score

Important: python-urwid security update

Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.

Security Fix(es):

  • urwid: Urwid: Predictable session IDs lead to remote code execution and information disclosure (CVE-2026-9323)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:58952
Updated
2026-11-02
OSVAZL-92916 No score

CVE-2026-9323 affecting package python-urwid 2.6.14-1

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

Record
AZL-92916
Updated
2026-11-05
OSVMGASA-2026-0466 No score

Updated python-urwid & python-wcwidth packages fixes a security vulnerability

Insecure PRNG and Information Exposure in urwid Web Display Backend

Record
MGASA-2026-0466
Updated
2026-11-02
OSVopenSUSE-SU-2026:11356-1 No score

python313-urwid-4.0.5-1.1 on GA media

These are all security issues fixed in the python313-urwid-4.0.5-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11356-1
Updated
2026-11-02
OSVSUSE-SU-2026:3425-1 No score

Security update for python-urwid

This update for python-urwid fixes the following issue

CVE-2026-9323: web session IDs generated by Screen.start() are not cryptographically secure (bsc#1271868).

Record
SUSE-SU-2026:3425-1
Updated
2026-11-02
OSVSUSE-SU-2026:3460-1 No score

Security update for python-urwid

This update for python-urwid fixes the following issue:

  • CVE-2026-9323: web session IDs generated by Screen.start() are not cryptographically secure (bsc#1271868).
Record
SUSE-SU-2026:3460-1
Updated
2026-11-02
OSVUSN-8751-1 No score

urwid vulnerabilities

Katriel Moses discovered that Urwid used a weak PRNG. A local attacker could possibly use this issue to cause a denial of service or execute arbitrary code.

Record
USN-8751-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
python3-urwid
AlmaLinux:10
before 2.5.3-4.el10_2.5
2.5.3-4.el10_2.5
python3-urwid
AlmaLinux:8
before 1.3.1-5.el8_10
1.3.1-5.el8_10
python3-urwid
AlmaLinux:9
before 2.1.2-4.el9_8.1
2.1.2-4.el9_8.1
python-urwid
Azure Linux:3
through 2.6.14-1 None known
py3-urwid
Alpaquita:23
2.1.2-r3 up to 2.2.3-r1
2.2.3-r1
py3-urwid
Alpaquita:25
2.6.13-r0 up to 2.6.13-r1
2.6.13-r1
py3-urwid
Alpaquita:stream
2.1.2-r2 up to 3.0.5-r1
3.0.5-r1
urwid
Debian:12
before 2.1.2-4+deb12u1, plus listed versions
2.1.2-4
2.1.2-4+deb12u1
urwid
Debian:13
All versions, plus listed versions
2.6.16-13.0.4-14.1.3-14.2.1-1
None known
urwid
Debian:14
before 4.1.3-1, plus listed versions
2.6.16-13.0.4-1
4.1.3-1
Show 92 moreShow less
Affected packages
PackageAffectedFixed
python-urwid
Mageia:10
before 4.1.3-1.mga10
4.1.3-1.mga10
python-wcwidth
Mageia:10
before 0.8.3-1.mga10
0.8.3-1.mga10
python-urwid
openEuler:22.03-LTS-SP4
before 2.1.2-4.oe2203sp4
2.1.2-4.oe2203sp4
python-urwid
openEuler:24.03-LTS-SP1
before 2.1.2-6.oe2403sp1
2.1.2-6.oe2403sp1
python-urwid
openEuler:24.03-LTS-SP3
before 2.1.2-6.oe2403sp3
2.1.2-6.oe2403sp3
python-urwid
openEuler:24.03-LTS-SP4
before 2.1.2-6.oe2403sp4
2.1.2-6.oe2403sp4
python-urwid
openEuler:20.03-LTS-SP4
before 2.1.2-3.oe2003sp4
2.1.2-3.oe2003sp4
python-urwid
Red Hat:rhel_e4s:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python-urwid-debugsource
Red Hat:rhel_e4s:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python3-urwid
Red Hat:rhel_e4s:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python3-urwid-debuginfo
Red Hat:rhel_e4s:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python-urwid
Red Hat:rhel_tus:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python-urwid-debugsource
Red Hat:rhel_tus:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python3-urwid
Red Hat:rhel_tus:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python3-urwid-debuginfo
Red Hat:rhel_tus:8.8::baseos
before 0:1.3.1-4.el8_8.1
0:1.3.1-4.el8_8.1
python-urwid
Red Hat:rhel_aus:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python-urwid-debugsource
Red Hat:rhel_aus:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python3-urwid
Red Hat:rhel_aus:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python3-urwid-debuginfo
Red Hat:rhel_aus:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python-urwid
Red Hat:rhel_eus_long_life:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python-urwid-debugsource
Red Hat:rhel_eus_long_life:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python3-urwid
Red Hat:rhel_eus_long_life:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python3-urwid-debuginfo
Red Hat:rhel_eus_long_life:8.4::baseos
before 0:1.3.1-4.el8_4.1
0:1.3.1-4.el8_4.1
python-urwid
Red Hat:enterprise_linux:10.2
before 0:2.5.3-4.el10_2.5
0:2.5.3-4.el10_2.5
python-urwid-debugsource
Red Hat:enterprise_linux:10.2
before 0:2.5.3-4.el10_2.5
0:2.5.3-4.el10_2.5
python3-urwid
Red Hat:enterprise_linux:10.2
before 0:2.5.3-4.el10_2.5
0:2.5.3-4.el10_2.5
python3-urwid-debuginfo
Red Hat:enterprise_linux:10.2
before 0:2.5.3-4.el10_2.5
0:2.5.3-4.el10_2.5
python-urwid
Red Hat:enterprise_linux:8::baseos
before 0:1.3.1-5.el8_10
0:1.3.1-5.el8_10
python-urwid-debugsource
Red Hat:enterprise_linux:8::baseos
before 0:1.3.1-5.el8_10
0:1.3.1-5.el8_10
python3-urwid
Red Hat:enterprise_linux:8::baseos
before 0:1.3.1-5.el8_10
0:1.3.1-5.el8_10
python3-urwid-debuginfo
Red Hat:enterprise_linux:8::baseos
before 0:1.3.1-5.el8_10
0:1.3.1-5.el8_10
python-urwid
Red Hat:enterprise_linux:9::baseos
before 0:2.1.2-4.el9_8.1
0:2.1.2-4.el9_8.1
python-urwid-debugsource
Red Hat:enterprise_linux:9::baseos
before 0:2.1.2-4.el9_8.1
0:2.1.2-4.el9_8.1
python3-urwid
Red Hat:enterprise_linux:9::baseos
before 0:2.1.2-4.el9_8.1
0:2.1.2-4.el9_8.1
python3-urwid-debuginfo
Red Hat:enterprise_linux:9::baseos
before 0:2.1.2-4.el9_8.1
0:2.1.2-4.el9_8.1
python-urwid
Red Hat:rhel_e4s:9.4::baseos
before 0:2.1.2-4.el9_4.1
0:2.1.2-4.el9_4.1
python-urwid-debugsource
Red Hat:rhel_e4s:9.4::baseos
before 0:2.1.2-4.el9_4.1
0:2.1.2-4.el9_4.1
python3-urwid
Red Hat:rhel_e4s:9.4::baseos
before 0:2.1.2-4.el9_4.1
0:2.1.2-4.el9_4.1
python3-urwid-debuginfo
Red Hat:rhel_e4s:9.4::baseos
before 0:2.1.2-4.el9_4.1
0:2.1.2-4.el9_4.1
python-urwid
Red Hat:rhel_e4s:9.2::baseos
before 0:2.1.2-4.el9_2.1
0:2.1.2-4.el9_2.1
python-urwid-debugsource
Red Hat:rhel_e4s:9.2::baseos
before 0:2.1.2-4.el9_2.1
0:2.1.2-4.el9_2.1
python3-urwid
Red Hat:rhel_e4s:9.2::baseos
before 0:2.1.2-4.el9_2.1
0:2.1.2-4.el9_2.1
python3-urwid-debuginfo
Red Hat:rhel_e4s:9.2::baseos
before 0:2.1.2-4.el9_2.1
0:2.1.2-4.el9_2.1
python-urwid
Red Hat:rhel_eus:9.6::baseos
before 0:2.1.2-4.el9_6.1
0:2.1.2-4.el9_6.1
python-urwid-debugsource
Red Hat:rhel_eus:9.6::baseos
before 0:2.1.2-4.el9_6.1
0:2.1.2-4.el9_6.1
python3-urwid
Red Hat:rhel_eus:9.6::baseos
before 0:2.1.2-4.el9_6.1
0:2.1.2-4.el9_6.1
python3-urwid-debuginfo
Red Hat:rhel_eus:9.6::baseos
before 0:2.1.2-4.el9_6.1
0:2.1.2-4.el9_6.1
python-urwid
Red Hat:rhel_aus:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python-urwid-debugsource
Red Hat:rhel_aus:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python3-urwid
Red Hat:rhel_aus:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python3-urwid-debuginfo
Red Hat:rhel_aus:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python-urwid
Red Hat:rhel_eus_long_life:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python-urwid-debugsource
Red Hat:rhel_eus_long_life:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python3-urwid
Red Hat:rhel_eus_long_life:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python3-urwid-debuginfo
Red Hat:rhel_eus_long_life:8.6::baseos
before 0:1.3.1-4.el8_6.1
0:1.3.1-4.el8_6.1
python-urwid
Red Hat:enterprise_linux_eus:10.0
before 0:2.5.3-4.el10_0.5
0:2.5.3-4.el10_0.5
python-urwid-debugsource
Red Hat:enterprise_linux_eus:10.0
before 0:2.5.3-4.el10_0.5
0:2.5.3-4.el10_0.5
python3-urwid
Red Hat:enterprise_linux_eus:10.0
before 0:2.5.3-4.el10_0.5
0:2.5.3-4.el10_0.5
python3-urwid-debuginfo
Red Hat:enterprise_linux_eus:10.0
before 0:2.5.3-4.el10_0.5
0:2.5.3-4.el10_0.5
python-urwid
Rocky Linux:10
before 0:2.5.3-4.el10_2.5
0:2.5.3-4.el10_2.5
python-urwid
Rocky Linux:8
before 0:1.3.1-5.el8_10
0:1.3.1-5.el8_10
python-urwid
Rocky Linux:9
before 0:2.1.2-4.el9_8.1
0:2.1.2-4.el9_8.1
python-urwid
SUSE:Linux Enterprise Module for Python 3 15 SP7
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Server 15 SP4-LTSS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Server 15 SP5-LTSS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Server 15 SP6-LTSS
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Server for SAP Applications 15 SP4
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Server for SAP Applications 15 SP5
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Server for SAP Applications 15 SP6
before 2.1.2-150400.11.6.1
2.1.2-150400.11.6.1
python-urwid
SUSE:Linux Enterprise Module for Basesystem 15 SP7
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise Server 15 SP4-LTSS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise Server 15 SP5-LTSS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise Server 15 SP6-LTSS
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise Server for SAP Applications 15 SP4
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise Server for SAP Applications 15 SP5
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
python-urwid
SUSE:Linux Enterprise Server for SAP Applications 15 SP6
before 2.0.1-150000.3.3.1
2.0.1-150000.3.3.1
urwid
Ubuntu:16.04:LTS
All versions, plus listed versions
1.2.1-2build11.3.0-21.3.1-21.3.1-2build1
None known
urwid
Ubuntu:Pro:18.04:LTS
before 2.0.1-2ubuntu0.1~esm1, plus listed versions
1.3.1-2ubuntu22.0.1-2
2.0.1-2ubuntu0.1~esm1
urwid
Ubuntu:Pro:20.04:LTS
before 2.0.1-3ubuntu0.1~esm1, plus listed versions
2.0.1-2build22.0.1-2build32.0.1-2build42.0.1-3
2.0.1-3ubuntu0.1~esm1
urwid
Ubuntu:22.04:LTS
before 2.1.2-2ubuntu0.1, plus listed versions
2.1.2-1build12.1.2-1build32.1.2-22.1.2-2build1
2.1.2-2ubuntu0.1
urwid
Ubuntu:24.04:LTS
All versions, plus listed versions
2.1.2-4build12.1.2-4.22.4.1-0.22.4.6-0.12.5.2-12.6.4-12.6.4-1ubuntu12.6.10-1
None known
urwid
Ubuntu:26.10
All versions, plus listed versions
3.0.4-1
None known
urwid
Ubuntu:Pro:26.04:LTS
before 3.0.4-1ubuntu0.1~esm1, plus listed versions
2.6.16-13.0.4-1
3.0.4-1ubuntu0.1~esm1
python-urwid
openSUSE:Tumbleweed
before 4.0.5-1.1
4.0.5-1.1

History

History
RecordedChangedSources
facts, referencesGitHub Advisories, OSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-9323 is a critical vulnerability (CVSS 9.2) in Urwid, published July 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.71%, the 53rd percentile. Fixed in python3-urwid 2.5.3-4.el10_2.5.

References

Show 47 moreShow less
MoveEnter Open