CVE-2026-9323 in urwid
Zusammenfassung
von VulDB • 18.07.2026
Das Web-Display-Frontend von urwid (urwid/display/web.py) generiert Websitzungs-IDs (urwid_id) in Screen.start(), indem es zwei Aufrufe von random.randrange(10**9) konkateniert, die den Mersenne-Twister-Pseudozufallszahlengenerator (PRNG) von Python verwenden, der nicht kryptografisch sicher ist. Jeder Aufruf verbraucht etwa 30 Bits des PRNG-Zustands, und der interne Zustand des Mersenne Twisters beträgt ungefähr 19.937 Bit. Daher kann ein Angreifer, der etwa 334 Sitzungs-IDs beobachtet (z. B. über den HTTP-Antwortheader X-Urwid-ID), den internen Zustand vollständig rekonstruieren und alle vergangenen und zukünftigen Sitzungs-IDs vorhersagen (Pfad B). Dieselbe ID wird auch als Dateiname eines FIFOs verwendet, das im weltlesbaren Verzeichnis /tmp erstellt wird (z. B. /tmp/urwid375487765176907690.in), sodass jeder lokale Benutzer auf dem Host durch Auflisten von /tmp aktive Sitzungstoken direkt auflisten kann (Pfad A). Mit einer gültigen Sitzungs-ID kann ein Angreifer den Terminalbildschirm des Opfers über den Polling-Endpunkt lesen, Tastatureingaben in die Sitzung des Opfers einspeisen (was zur Ausführung von Code auf Betriebssystemebene mit den Berechtigungen des Sitzungsinhabers führt, wenn die Sitzung eine Shell ausführt) und Exit-Sequenzen injizieren oder den FIFO fluten, um die Sitzung zu beenden oder zum Absturz zu bringen. Eine vorherige Bandit S311-Warnung bezüglich dieser Verwendung wurde unterdrückt (# noqa: S311), anstatt das Problem zu beheben.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.