CVE-2026-9323 in urwid
Tóm tắt
Bởi VulDB • 18/07/2026
Backend hiển thị web của urwid (urwid/display/web.py) tạo ra các định danh phiên web (urwid_id) trong hàm Screen.start() bằng cách nối kết quả từ hai lệnh gọi random.randrange(10**9), sử dụng bộ sinh số giả ngẫu nhiên Mersenne Twister của Python, vốn không an toàn về mặt mật mã. Mỗi lệnh gọi tiêu thụ khoảng 30 bit trạng thái của PRNG, và trạng thái nội bộ của Mersenne Twiser có kích thước xấp xỉ 19.937 bit; do đó, một kẻ tấn công quan sát được khoảng 334 định danh phiên (ví dụ: thông qua header phản hồi HTTP X-Urwid-ID) có thể hoàn toàn khôi phục trạng thái nội bộ và dự đoán tất cả các định danh phiên trong quá khứ cũng như tương lai (Đường dẫn B). Định danh này cũng được sử dụng làm tên tệp của một FIFO được tạo ra trong thư mục /tmp liệt kê được cho mọi người dùng (ví dụ: /tmp/urwid375487765176907690.in), vì vậy bất kỳ người dùng cục bộ nào trên máy chủ đều có thể liệt kê nội dung /tmp để xác định các mã thông báo phiên đang hoạt động một cách trực tiếp (Đường dẫn A). Với một ID phiên hợp lệ, kẻ tấn công có thể đọc màn hình terminal của nạn nhân qua điểm cuối polling, chèn các phím bấm vào phiên làm việc của nạn nhân (dẫn đến thực thi code ở mức OS với đặc quyền chủ sở hữu phiên nếu phiên đó đang chạy shell), và chèn các chuỗi thoát hoặc làm đầy FIFO để kết thúc hoặc gây sập phiên. Một cảnh báo Bandit S311 trước đây về cách sử dụng này đã bị vô hiệu hóa bằng cách thêm # noqa: S311 thay vì được khắc phục.
VulDB is the best source for vulnerability data and more expert information about this specific topic.