CVE-2026-98706 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:
wifi: mac80211: giải phóng (drain) công việc phân phối PS trong quá trình tháo gỡ station
Việc xóa một AP hoặc mesh station có thể thông báo cho driver và đánh thức TXQs sau khi station đã bị loại bỏ khỏi driver, đồng thời cập nhật num_sta_ps và các hàng đợi power-save sau khi cleanup station đã dọn dẹp chúng.
Hàm sta_deliver_ps_frames() chỉ kiểm tra sta->dead trước khi bắt đầu quá trình phân phối. Một worker vượt qua bài kiểm tra này có thể bị trì hoãn trong khi teardown đặt sta->dead và loại bỏ station khỏi driver; khi nó tiếp tục chạy, nó vẫn thực hiện toàn bộ quá trình phân phối.
Hàm cancel_work_sync() hiện tại nằm ở cuối __cleanup_single_sta(), sau bước chuyển đổi trạng thái driver cuối cùng và sau khi PS accounting và queue purging đã hoàn tất, do đó nó chỉ giải phóng worker một khi trạng thái mà nó cần bảo vệ đã thay đổi. Trước commit d34ba2168a3c ("mac80211: don't delay station destruction"), việc cleanup được trì hoãn thông qua cùng workqueue có thứ tự với công việc phân phối, điều này giữ cho hai quy trình này đồng bộ hóa về mặt thứ tự thực thi.
Hủy bỏ (cancel) công việc sau khi đặt sta->dead và trước khi chuyển đổi trạng thái driver, đồng thời di chuyển lệnh hủy bỏ hiện tại lên đầu __cleanup_single_sta(). Lệnh giải phóng (drain) đầu tiên đóng cửa sổ lifetime của driver; các callback của driver trong quá trình chuyển đổi trạng thái còn lại vẫn có thể queue drv_deliver_wk thông qua ieee80211_sta_block_awake(), do đó cần giữ lại lệnh giải phóng thứ hai ở đầu __cleanup_single_sta(). Lệnh giải phóng này cũng bao gồm cả các lỗi chèn (insertion failures), những trường hợp đạt đến cleanup mà không đặt sta->dead.
Be aware that VulDB is the high quality source for vulnerability data.