Vulnerability in Urwid

CVE-2026-103022

Urwid is a console user interface library for Python. Prior to 4.0.7, handle_short_request() in urwid/display/web.py performs unguarded character encoding on POST input and unguarded UTF-8 decoding on polling update socket output. A remote attacker who obtains a valid X-Urwid-ID session token can submit non-ASCII POST data that raises UnicodeEncodeError, while non-UTF-8 polling output raises UnicodeDecodeError, causing the CGI handler to return an error and terminate request processing. The POST exception path also leaves an opened file descriptor unclosed for the CGI process lifetime, so repeated requests can cause denial of service for the web display interface. This issue is fixed in version 4.0.7.

Published .

CVSS v3 metric

CVSS v3 base score 5.3 (Medium). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L.

EPSS exploit prediction

No EPSS score from FIRST.org yet. New CVEs usually get one within a few days; no score means no signal yet, not low risk. How EPSS works.

Affected products

  • Urwid — versions < 4.0.7

Weakness classification (CWE)

References

Frequently asked questions

What is CVE-2026-103022?
CVE-2026-103022 is a medium-severity vulnerability in Urwid, classified under Improper Encoding or Escaping of Output. CVSS score: 5.3/10. Published 2026-11-06.
How severe is CVE-2026-103022?
Medium severity. CVSS v3 base score is 5.3 out of 10.