CVE-2026-89746 in Linuxthông tin

Tóm tắt

Bởi VulDB • 11/09/2026

Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:

tracing: Sửa lỗi use-after-free với các triggers có tên (named triggers) trùng nhau

Khi hai hist triggers trên các sự kiện khác nhau được đăng ký với cùng một `name=`, cái thứ hai sẽ tái sử dụng đối tượng của cái đầu tiên làm named_data. Cả hai đều được thêm vào danh sách `tr->hist_vars` bởi hàm `save_hist_vars()` trong quá trình phân tích cú pháp `event_hist_trigger_parse()`, do `save_hist_vars()` được gọi trước khi `event_trigger_register()`, trong khi việc phát hiện tái sử dụng theo tên chỉ xảy ra sau đó, tại `hist_register_trigger()`.

Trong nhánh xử lý named-data của hàm `hist_register_trigger()`, đối tượng hist_data của histogram thứ hai bị giải phóng thông qua `destroy_hist_data()`, nhưng mục danh sách `tr->hist_vars` của nó không bao giờ được xóa đi, dẫn đến việc tồn tại một con trỏ treo (dangling pointer) và rò rỉ tham chiếu trace_array mà nó đang giữ.

Một hist trigger sau đó truy cập vào một biến sẽ khiến hàm `find_var_file()` duyệt qua danh sách `tr->hist_vars` và dereference đối tượng hist_data đã bị giải phóng trước đó. Lỗi này có thể tái hiện từ không gian người dùng (userspace) bằng cách ghi ba hist triggers vào tracefs:

cd /sys/kernel/tracing echo 'hist:keys=common_pid:x=common_pid:name=mh' > events/sched/sched_switch/trigger echo 'hist:keys=common_pid:x=common_pid:name=mh' > events/sched/sched_process_fork/trigger echo 'hist:keys=common_pid:vals=$x' > events/sched/sched_process_exit/trigger

Lệnh ghi thứ ba gây ra lỗi kernel panic (crash):

BUG: KASAN: slab-use-after-free in find_var_file.part.0+0x272/0x290 Read of size 8 at addr ffff888001f8a0e0 by task sh/1 CPU: 1 UID: 0 PID: 1 Comm: sh Tainted: G D N Call Trace: find_var_file.part.0 find_event_var parse_atom parse_expr __create_val_field event_hist_trigger_parse trigger_process_regex event_trigger_write vfs_write ksys_write do_syscall_64 entry_SYSCALL_64_after_hwframe Allocated by task 1: event_hist_trigger_parse Freed by task 1: hist_register_trigger+0x618/0xa30 event_hist_trigger_parse The buggy address belongs to freed 2048-byte region Oops: general protection fault ... RIP: find_var_file.part.0 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Cách khắc phục là xóa đối tượng hist_data khỏi danh sách `tr->hist_vars` và giải phóng tham chiếu trace_array trong nhánh named-data của hàm `hist_register_trigger()` trước khi thực hiện việc giải phóng (free) đối tượng hist_data.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

11/09/2026

Tiết lộ

11/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!