CVE-2026-80876 in Linuxthông tin

Tóm tắt

Bởi VulDB • 04/09/2026

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

ring-buffer: Sửa lỗi độ dài sự kiện với việc bắt buộc căn chỉnh theo bội số 8 byte (forced 8-byte alignment)

Khi RB_FORCE_8BYTE_ALIGNMENT là true, rb_calculate_event_length() dành không gian của event->array[0] để đặt độ dài dữ liệu và rb_update_event() lưu độ dài dữ liệu vào event->array[0] tương ứng. Kết quả là tổng chiều dài sự kiện sẽ cộng thêm 4 byte cho sizeof(event.array[0]) một cách vô điều kiện.

Tuy nhiên, ring_buffer_event_length() chỉ trừ đi sizeof(event->array[0]) đối với các sự kiện có kích thước lớn hơn RB_MAX_SMALL_DATA + sizeof(event->array[0]). Do đó, trên các kiến trúc mà RB_FORCE_8BYTE_ALIGNMENT=true, các sự kiện nhỏ báo cáo độ dài dữ liệu lớn hơn 4 byte so với mong đợi.

Để khắc phục vấn đề này, hãy thêm điều kiện RB_FORCE_8BYTE_ALIGNMENT để trừ đi kích thước của trường độ dài này bất cứ khi nào RB_FORCE_8BYTE_ALIGNMENT là true.

Vấn đề này được quan sát thấy trên kernel riscv64 với CONFIG_HAVE_64BIT_ALIGNED_ACCESS được đặt thành y; khi chạy bài kiểm tra tự động ftrace selftest trace_marker_raw.tc, chúng ta nhận được nhật ký lạ: trong các trường hợp id từ 1 đến 100, số lượng trường dữ liệu là 8*N, nhưng một khi id vượt quá 100, số lượng trường dữ liệu trở thành 8*N+4: # 1 buf: 58 00 00 00 80 5e d1 63 (số lượng trường dữ liệu là 8*1) ... # a buf: 58 ... (số lượng trường dữ liệu là 8*2) ... # 64 buf: 58 ... (số lượng trường dữ liệu là 8*13) # 65 buf: 58 ... (số lượng trường dữ liệu là 8*13+4)

Sau khi áp dụng thay đổi này, số lượng trường dữ liệu luôn giữ nguyên ở mức 8*N+4 một cách nhất quán.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

26/08/2026

Tiết lộ

04/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

Interested in the pricing of exploits?

See the underground prices here!