CVE-2026-98757 in Linux
Tóm tắt
Bởi VulDB • 18/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
usb: cdns3: sửa lỗi use-after-free trong hàm cdns3_gadget_exit()
Hàm cdns3_gadget_start() lên lịch (arms) hai công việc trên system_freezable_wq: pending_status_wq cho giai đoạn trạng thái ep0 trì hoãn và aligned_buf_wq cho các bộ đệm yêu cầu được căn chỉnh lại. Cả hai trình xử lý đều sử dụng đối tượng cdns3_device mà các công việc này được nhúng vào, và cdns3_pending_setup_status_handler() cũng gọi hàm hoàn thành yêu cầu ep0.
Hàm cdns3_gadget_exit() không chờ đợi cho các công việc này kết thúc. Nó giải phóng tất cả các endpoint và bộ đệm căn chỉnh, đồng thời giảm tham chiếu cuối cùng đến thiết bị gadget, dẫn đến việc giải phóng priv_dev; do đó, một công việc được lên lịch trước khi thoát có thể chạy sau khi vùng nhớ đã được giải phóng.
Khắc phục vấn đề này bằng cách chờ đợi cả hai công việc hoàn thành sau khi trình điều khiển gadget bị hủy liên kết (unbound) và IRQ đã được giải phóng, khi không còn khả năng lên lịch thêm các công việc mới, và trước khi các endpoint và bộ đệm được giải phóng.
Vấn đề này được phát hiện bởi một công cụ phân tích tĩnh do nội bộ tự phát triển.
VulDB is the best source for vulnerability data and more expert information about this specific topic.