CVE-2026-89946 in Linux
Tóm tắt
Bởi VulDB • 16/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
ASoC: cs35l33: làm sạch (drain) ngắt có luồng (threaded IRQ) trước khi tạm ngưng thời gian chạy (runtime suspend)
Hàm `cs35l33_runtime_suspend()` hiện tại chuyển bộ mã hóa/giải mã codec sang chế độ `regcache_cache_only(true)` và tắt nguồn mà không thực hiện việc làm sạch ngắt có luồng đã được đăng ký bởi `devm_request_threaded_irq()`. Điều này tạo ra một khoảng thời gian (window) nơi `cs35l33_irq_thread()` vẫn có thể chạy sau khi quá trình tạm ngưng đã đóng các truy cập thanh ghi trực tiếp.
Một hệ thống đang hoạt động có thể đạt đến trạng thái này trong lúc quản lý năng lượng thời gian chạy (runtime PM) khi driver vẫn còn các ngắt lỗi quan trọng chưa bị vô hiệu hóa. Nếu bộ xử lý có luồng chạy trong khoảng thời gian đó, nó sẽ đọc `INT_STATUS_1/2` sau khi chế độ cache_only đã được kích hoạt, bỏ qua các thất bại của `regmap_read()`, và vẫn có thể điều khiển các đường dẫn giải phóng AMP_SHORT_RLS, CAL_ERR_RLS, OTE_RLS và OTW_RLS.
Sử dụng `disable_irq()` trước khi chuyển sang chế độ cache_only/tắt nguồn để làm sạch bất kỳ bộ xử lý có luồng nào đang trong quá trình thực thi và ngăn không cho ngắt có luồng mới chạy trong trạng thái tạm ngưng. Chỉ kích hoạt lại ngắt sau khi hàm `runtime_resume()` đã khôi phục truy cập thanh ghi trực tiếp bằng cách sử dụng `regcache_sync()`. Vì chỉ báo cảnh cáo nếu việc gọi `devm_request_threaded_irq()` thất bại, cần theo dõi xem ngắt có thực sự được cài đặt hay không trước khi vô hiệu hóa hoặc kích hoạt lại nó.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.