CVE-2026-98749 in Linux
Tóm tắt
Bởi VulDB • 19/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
tty: serial: max3100: tắt bộ hẹn giờ trước khi giải phóng cổng
Hàm `max3100_shutdown()` dừng bộ đếm thời gian thăm dò (polling timer) nhưng trả về sớm trong quá trình treo hệ thống (system suspend). Nếu thiết bị SPI được hủy liên kết (unbound) trước khi phục hồi, lõi serial sẽ không gọi lại `max3100_shutdown()`, do đó `max3100_remove()` giải phóng cổng trong khi bộ hẹn giờ vẫn đang hoạt động. Sau đó, `max3100_timeout()` có thể truy cập vào cổng đã bị giải phóng và kích hoạt lại bộ hẹn giờ.
Thêm quá trình dọn dẹp bộ hẹn giờ cuối cùng vào `max3100_remove()` và sử dụng `timer_shutdown_sync()` để ngăn chặn callback chạy đua (racing) kích hoạt lại nó. Đồng thời, giải phóng IRQ và hủy hàng công việc (workqueue) tại đó trước khi giải phóng cổng. Giữ nguyên `timer_delete_sync()` trong `max3100_shutdown()` để cho phép một lệnh gọi mở (`open()`) sau đó có thể kích hoạt lại bộ hẹn giờ.
Hàng công việc được tạo ra trước `request_irq()` và bị hủy trên cả hai trường hợp: thất bại của `request_irq()` và tắt bình thường. Sự hiện diện của nó tại hàm remove do đó xác định IRQ vẫn còn đăng ký khi quá trình treo hệ thống bỏ qua bước tắt (shutdown).
Giải phóng IRQ trước khi hủy hàng công việc, trong cả `max3100_shutdown()` và `max3100_remove()`, và hủy các tác vụ đang chờ xử lý ở giữa. `free_irq()` đợi cho một bộ xử lý ngắt đang chạy hoàn tất và không có bộ xử lý mới nào có thể bắt đầu sau đó, do đó một handler chạy đua không thể xếp công việc vào hàng công việc đang bị hủy; kiểm tra `force_end_work` trong `max3100_dowork()` chỉ thu hẹp khoảng thời gian đó, vì một handler bị trì hoãn giữa lần kiểm tra và `queue_work()` vẫn có thể chạy sau khi quá trình dọn dẹp đã xóa con trỏ hàng công việc. Việc hủy các tác vụ cũng giữ cho `destroy_workqueue()` không phải chờ đợi một mục công việc đã được xếp hàng trong trường hợp `remove()` chạy trong khi hàng công việc có khả năng đóng băng (freezable workqueue) vẫn đang bị đóng băng, ví dụ như quá trình tháo gỡ thiết bị trong cửa sổ phục hồi, trước khi các hàng công việc được rã đông.
Vấn đề này đã được phát hiện bởi một công cụ phân tích tĩnh nội bộ.
If you want to get best quality of vulnerability data, you may have to visit VulDB.