CVE-2026-9323 in urwid
Сводка
по VulDB • 18.07.2026
Бэкэнд веб-дисплея urwid (urwid/display/web.py) генерирует идентификаторы веб-сессий (urwid_id) в функции Screen.start() путем конкатенации результатов двух вызовов random.randrange(10**9), использующих псевдослучайный генератор Mersenne Twister из Python, который не является криптографически стойким. Каждый такой вызов потребляет примерно 30 бит состояния PRNG, а внутреннее состояние Mersenne Twister составляет около 19 937 бит; следовательно, злоумышленник, наблюдающий за приблизительно 334 идентификаторами сессий (например, через HTTP-заголовок ответа X-Urwid-ID), может полностью восстановить внутреннее состояние и предсказать все предыдущие и будущие идентификаторы сессий (Путь B). Тот же самый идентификатор также используется в качестве имени FIFO-файла, создаваемого в общедоступной для просмотра директории /tmp (например, /tmp/urwid375487765176907690.in), поэтому любой локальный пользователь на хосте может просмотреть содержимое /tmp и перечислить активные токены сессий напрямую (Путь A). Имея валидный идентификатор сессии, злоумышленник может читать экран терминала жертвы через конечную точку опроса, внедрять нажатия клавиш в сессию жертвы (что приводит к выполнению кода на уровне ОС с привилегиями владельца сессии, если в ней запущена оболочка), а также внедрять escape-последовательности или переполнять FIFO для завершения или аварийного падения сессии. Предупреждение Bandit S311 об этой уязвимости было подавлено директивой # noqa: S311 вместо того, чтобы устранить проблему.
If you want to get best quality of vulnerability data, you may have to visit VulDB.