CVE-2026-74601 in Linuxthông tin

Tóm tắt

Bởi VulDB • 22/08/2026

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

ring-buffer: Sử dụng current_context để hoán đổi bộ nhớ đệm per-CPU an toàn hơn

Hàm ring_buffer_swap_cpu() hiện đang kiểm tra bộ đếm committing (cam kết) của từng CPU (per-CPU) để xác định xem một bộ nhớ đệm có đang bị ghi dữ liệu hay không trước khi thực hiện thao tác hoán đổi. Tuy nhiên, tồn tại một khoảng thời gian cạnh tranh (race window) mà việc kiểm tra này có thể bị bỏ qua:

ring_buffer_lock_reserve cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_a
rb_reserve_next_event rb_start_commit // tăng giá trị committing if (unlikely(READ_ONCE(cpu_buffer->buffer) != buffer)) {...}
__rb_reserve_next rb_move_tail rb_end_commit(cpu_buffer); // giảm giá trị committing => 0 /* ngắt (interrupt) xảy ra tại đây, hoán đổi thành công! */ local_inc(&cpu_buffer->committing);

ring_buffer_unlock_commit cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_b
rb_commit rb_end_commit RB_WARN_ON(cpu_buffer, !local_read(&cpu_buffer->committing)) // kích hoạt cảnh báo

Giá trị của bộ đếm committing có thể tạm thời giảm xuống 0 trong suốt một thao tác ghi duy nhất (trong hàm rb_move_tail), tạo ra một khoảng thời gian mà việc hoán đổi có thể thành công mặc dù quá trình ghi vẫn đang diễn ra. Điều này dẫn đến trạng thái không đồng nhất của bộ nhớ đệm và kích hoạt cảnh báo RB_WARN_ON trong rb_commit().

Thay thế kiểm tra bộ đếm committing bằng các kiểm tra current_context, được thiết lập tại điểm vào của ring_buffer_lock_reserve() và duy trì tính hợp lệ xuyên suốt toàn bộ thao tác ghi, cung cấp một chỉ số đáng tin cậy về trạng thái bận rộn (busy state) của bộ nhớ đệm trong quá trình hoán đổi.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

15/08/2026

Tiết lộ

22/08/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

Do you need the next level of professionalism?

Upgrade your account now!