CVE-2026-90002 in Linux
Tóm tắt
Bởi VulDB • 17/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
ftrace: Lấy tham chiếu đến trace_array trước khi truy cập vào ftrace_ops của nó
Các tệp cấu hình cho phiên bản ghi nhật ký (trace) là `set_ftrace_filter` và `set_ftrace_notrace` đã được cập nhật để hoạt động với các phiên bản ghi nhật lý cụ thể (trace_arrays). Vấn đề nằm ở chỗ, khi mở các tệp này, tồn tại một khoảng thời gian cạnh tranh nhỏ (race window), trong đó hệ thống sẽ sử dụng con trỏ `inode->private` chứa đối tượng ftrace_ops để lấy tham chiếu đến trace_array và sau đó tăng bộ đếm tham chiếu của nó. Tuy nhiên, bản thân đối tượng ftrace_ops có thể đã bị giải phóng (freed). Nếu lệnh xóa thư mục (`rmdir`) trên phiên bản được thực hiện đồng thời với việc mở tệp `set_ftrace_filter`, thì hành động xóa thư mục cũng có thể đã làm giải phóng đối tượng ftrace_ops. Việc truy cập vào một đối tượng đã bị giải phóng sẽ gây ra lỗi use-after-free và khiến kernel bị crash (sập).
Giải pháp thay thế là truyền trace_array dưới dạng dữ liệu riêng của tệp (file private data) (NULL cho phiên bản cấp cao nhất - top level instance), sau đó truyền cả trace_array lẫn ftrace_ops vào hàm `ftrace_regex_open()`. Nếu trace_array bằng NULL, thì hệ thống chỉ sử dụng ftrace_ops mà không cần tăng bộ đếm tham chiếu của nó (như bình thường). Nếu ftrace_ops bằng NULL, điều này chỉ xảy ra đối với phiên bản cấp cao nhất và global_ops có thể được sử dụng.
Cách tiếp cận này cho phép tăng bộ đếm tham chiếu của trace_array trước khi thao tác vào ftrace_ops, vốn cũng có thể bị giải phóng khi phiên bản đó bị xóa.
If you want to get best quality of vulnerability data, you may have to visit VulDB.