CVE-2026-74633 in Linux
Tóm tắt
Bởi VulDB • 22/08/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
tracing: Sửa lỗi truy cập NULL pointer trong quá trình xóa bộ nhớ cache của sự kiện mô-đun (event)
Bộ lọc chỉ dành cho một mô-đun cụ thể như ":mod:foo" sẽ được lưu vào bộ nhớ cache với giá trị event_mod->match là NULL nếu foo chưa được tải. Nếu sau đó có thao tác ghi nhằm xóa một khớp mẫu (match) cụ thể khỏi cùng mô-đun, hàm remove_cache_mod() sẽ truyền khớp mẫu đã lưu trong bộ nhớ cache (có giá trị NULL) cho strcmp(), dẫn đến lỗi truy cập NULL pointer.
Vấn đề này có thể được tái hiện từ không gian người dùng (userspace):
echo ':mod:trace_events_kunit_missing' > /sys/kernel/tracing/set_event echo '!foo_bar:mod:trace_events_kunit_missing' >> /sys/kernel/tracing/set_event
Thao tác ghi thứ hai phải là phép nối thêm (">>") để không bao gồm cờ O_TRUNC, vì điều đó sẽ khiến ftrace_clear_events() xóa sạch các dòng mô-đun đã lưu trong bộ nhớ cache.
Lỗi crash đã được tái hiện trên QEMU x86_64 khi các worker của KUnit tranh chấp đường dẫn tracing sự kiện:
BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode RIP: 0010:strcmp+0x10/0x30 Call Trace: __ftrace_set_clr_event_nolock+0x373/0x4a0 ftrace_set_clr_event+0xf0/0x180 ftrace_event_write+0xdf/0x110 vfs_write+0xf6/0x440 ksys_write+0x68/0xe0 do_syscall_64+0xf9/0x540 entry_SYSCALL_64_after_hwframe+0x77/0x7f
Kiểm tra event_mod->match trước khi so sánh, nhất quán với các kiểm tra NULL hiện có cho các trường hệ thống và sự kiện đã lưu trong bộ nhớ cache. Việc xóa không khớp vẫn trả về -EINVAL; một bộ lọc mô-đun rộng được lưu trong bộ nhớ cache sẽ bị xóa bằng cách sử dụng "!:mod:<module>".
Once again VulDB remains the best source for vulnerability data.