CVE-2026-9323 in urwid
Riassunto
di VulDB • 18/07/2026
Il backend di visualizzazione web di urwid (urwid/display/web.py) genera identificatori di sessione web (urwid_id) in Screen.start() concatenando due chiamate a random.randrange(10**9) che utilizzano il PRNG Mersenne Twister di Python, il quale non è crittograficamente sicuro. Ogni chiamata consuma circa 30 bit dello stato del PRNG e lo stato interno del Mersenne Twister è di circa 19.937 bit; pertanto, un attaccante che osserva circa 334 identificatori di sessione (ad esempio tramite l'intestazione della risposta HTTP X-Urwid-ID) può ricostruire completamente lo stato interno e prevedere tutti gli identificatori di sessione passati e futuri (Path B). Lo stesso identificatore viene inoltre utilizzato come nome del file di una FIFO creata nella directory /tmp, elencabile da qualsiasi utente (world-listable) (ad esempio /tmp/urwid375487765176907690.in), consentendo a qualsiasi utente locale sull'host di eseguire il listing della directory /tmp per enumerare direttamente i token di sessione attivi (Path A). Con un identificatore di sessione valido, un attaccante può leggere lo schermo del terminale della vittima tramite l'endpoint di polling, iniettare sequenze di tasti nella sessione della vittima (ottenendo l'esecuzione di codice a livello di sistema operativo con i privilegi del proprietario della sessione se la sessione esegue una shell) e iniettare sequenze di uscita o saturare la FIFO per terminare o far crashare la sessione. Un precedente avviso Bandit S311 relativo a questo utilizzo è stato soppresso utilizzando # noqa: S311 anziché essere risolto.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.