CVE-2026-103022 Denegación de servicio en Urwid por cuerpo POST no ASCII en handle_short_request()
handle_short_request() en urwid/display/web.py codifica sin protección la entrada POST y decodifica sin protección la salida del socket de actualización por polling. Un atacante remoto con un token de sesión X-Urwid-ID válido puede enviar datos POST no ASCII que provoquen UnicodeEncodeError, o salida no UTF-8 que provoque UnicodeDecodeError, terminando el procesamiento de la solicitud. La ruta de excepción del POST también deja un descriptor de archivo abierto, permitiendo denegación de servicio con solicitudes…
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,5 % · percentil 41
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
urwid
< 4.0.7
Qué hacer
- Verificá si usás urwid y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 5.3 MEDIA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadNinguna
- DisponibilidadBaja
Descripción original
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.
Referencias (4)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.