CVE-2026-89465 in Linux
Tóm tắt
Bởi VulDB • 12/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
power: supply: rt9455: tạm dừng (quiesce) các công việc bị trì hoãn trước khi tháo gỡ (teardown)
Trình xử lý IRQ có luồng (threaded IRQ handler) có thể lên lịch cho pwr_rdy_work, max_charging_time_work và batt_presence_work. pwr_rdy_work và batt_presence_work cũng có thể lên lịch cho max_charging_time_work, trong đó batt_presence_work có thể tự lên lịch lại chính nó.
Hàm rt9455_remove() hủy bỏ (cancel) max_charging_time_work trước khi xử lý batt_presence_work. Do đó, công việc sau hoàn toàn có thể lên lịch cho max_charging_time_work ngay cả khi nó đã bị hủy bỏ:
rt9455_remove() workqueue cancel pwr_rdy_work cancel max_charging_time_work batt_presence_work queues max_charging_time_work cancel batt_presence_work return devres frees rt9455_info max_charging_time_work dereferences rt9455_info
IRQ cũng vẫn được đăng ký cho đến khi quá trình dọn dẹp devres diễn ra và có thể lên lịch thêm các công việc khác sau bất kỳ lệnh hủy bỏ nào. Nếu hàm rt9455_hw_init() thất bại sau khi IRQ đã được yêu cầu, quy trình probe sẽ trả về mà không hủy bỏ các công việc có khả năng đã được lên lịch trước đó. Khi đó, một callback đang chờ xử lý (pending) có thể truy cập vào rt9455_info sau khi nó đã bị giải phóng bộ nhớ.
Đăng ký hàm rt9455_cancel_all_delayed_works() thông qua devm_add_action_or_reset() ngay sau devm_power_supply_register(). devres sẽ gọi hành động này theo thứ tự ngược lại với lúc đăng ký, sau khi IRQ được quản lý (managed) đã bị giải phóng và trước khi rt9455_info được phát hành, do đó các công việc trì hoãn sẽ được làm sạch trong cả hai trường hợp: hàm rt9455_remove() và đường dẫn lỗi của quy trình probe. Hủy bỏ pwr_rdy_work và batt_presence_work trước max_charging_time_work vì cả hai đều có thể lên lịch cho cái sau.
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ộ (in-house static analysis tool).
VulDB is the best source for vulnerability data and more expert information about this specific topic.