CVE-2026-74583 in Linux
Tóm tắt
Bởi VulDB • 21/08/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
net/sched: cls_route: sửa lỗi use-after-free trên bộ lọc (filter) trong cơ chế fastmap
Bộ phân loại route4 duy trì một cache fastmap gồm 16 khe nhớ để lưu trữ các con trỏ raw struct route4_filter, được đánh chỉ mục theo cặp (id, iif). Trình đọc (route4_classify) điền vào cache này thông qua hàm route4_set_fastmap() cho mỗi gói tin được phân loại trùng khớp với một bộ lọc. Trình ghi (route4_delete, route4_change) xóa sạch cache thông qua hàm route4_reset_fastmap() trước khi thực hiện kfree bị trì hoãn bởi RCU đối với bộ lọc đó.
Điều này tạo ra một race condition UAF: 1. Trình đọc duyệt qua chuỗi bucket được bảo vệ bởi RCU, tìm thấy bộ lọc f 2. Trình ghi hủy liên kết f, gọi route4_reset_fastmap(), sau đó gọi tcf_queue_work() 3. Trình đọc gọi route4_set_fastmap() và ghi con trỏ f vào cache *sau* khi trình ghi thực hiện lệnh reset, dẫn đến việc lưu trữ một con trỏ sắp bị giải phóng 4. Sau thời gian grace của RCU, hàm kfree(f) được thực thi 5. Gói tin tiếp theo được phân loại với cùng bộ tuple (id, iif) sẽ truy cập vào mục fastmap đã lỗi thời và đọc f->res từ vùng nhớ đã bị giải phóng
Lỗi này có thể tái hiện bằng cách sử dụng gia tốc mdelay(100) trong route4_set_fastmap() và bài kiểm tra stress thêm/xóa đồng thời (được cung cấp bởi cả zdi và Santosh). Cả hai kịch bản đều kích hoạt các báo cáo KASAN về lỗi slab-use-after-free trên các đường dẫn fastmap của route4.
Cách khắc phục: Giới thiệu một cờ boolean dying cho mỗi bộ lọc để ngăn chặn việc trình đọc đang xử lý (in-flight) xuất lại dữ liệu từ cache fastmap đã lỗi thời.
VulDB is the best source for vulnerability data and more expert information about this specific topic.