CVE-2026-80688 in Linux
Tóm tắt
Bởi VulDB • 28/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
riscv: bỏ __init khỏi vec_check_unaligned_access_speed_all_cpus
Hàm này chạy trong một kthread và không nhất thiết phải hoàn tất trước khi hệ thống kết thúc quá trình khởi động và free_initmem() giải phóng (unmaps) phần .init.text. Hàm này thực hiện các lệnh gọi đến SBI để kiểm tra tốc độ truy cập chưa căn chỉnh (unaligned access), và nếu việc này chậm do một lý do nào đó (chẳng hạn như có thêm các bản in gỡ lỗi vào SBI), thì kthread vẫn có thể đang chạy tại thời điểm đó, dẫn đến lỗi trang instruction khi cố gắng lấy dữ liệu từ vùng bộ nhớ đã được giải phóng.
[ 25.642087] Không thể xử lý yêu cầu paging kernel tại địa chỉ ảo ffffffff80a04ef8
[ 25.646694] vec_check_unali hiện tại pgtable: kích thước trang 4K, VAs 48-bit, pgdp=0x00004000316e9000
[ 25.653170] [ffffffff80a04ef8] pgd=000010004be7e401, p4d=000010004be7e401, pud=000010004be7e001, pmd=000010000c3000e3
[ 25.661244] Oops [#1]
[ 25.662997] Các module đã được liên kết:
[ 25.665357] CPU: 3 UID: 0 PID: 42 Comm: vec_check_unali Không bị ảnh hưởng (Not tainted) 7.0.0-tt-blackhole-asrinivasan-00007-g30ff73f18211 #570 PREEMPTLAZY
[ 25.674669] Tên phần cứng: Tenstorrent Blackhole (DT)
[ 25.678545] epc : vec_check_unaligned_access_speed_all_cpus+0x18/0x2c
[ 25.683458] ra : vec_check_unaligned_access_speed_all_cpus+0x18/0x2c
[ 25.688372] epc : ffffffff80a04ef8 ra : ffffffff80a04ef8 sp : ffff8f8000203e20
[ 25.693874] gp : ffffffff814dc168 tp : ffffaf8001ad9900 t0 : 0000000000000000
[ 25.699401] t1 : fffffffffffffff0 t2 : ffffaf8001ad9a10 s0 : ffff8f8000203e30
[ 25.704912] s1 : ffffaf80018dc780 a0 : 0000000000000000 a1 : 0000000000000002
[ 25.710407] a2 : 00000000000001f0 a3 : 0000000000000018 a4 : 0000000000000000
[ 25.715917] a5 : 0000000000000000 a6 : ffffaf8001c03d98 a7 : ffffaf8001c03e30
[ 25.721419] s2 : ffff8f8000023c98 s3 : ffffaf8001aa1240 s4 : ffffffff80a04ee0
[ 25.726937] s5 : 0000000000000000 s6 : 0000000000000000 s7 : 0000000000000000
[ 25.732450] s8 : 0000000000000000 s9 : 0000000000000000 s10: 0000000000000000
[ 25.737944] s11: 0000000000000000 t3 : 0000000000000002 t4 : 0000000000000402
[ 25.743481] t5 : 0000000000000040 t6 : 0000000000000004 ssp : 0000000000000000
[ 25.749024] status: 0000000200000120 badaddr: ffffffff80a04ef8 cause: 000000000000000c
[ 25.755060] [<ffffffff80a04ef8>] vec_check_unaligned_access_speed_all_cpus+0x18/0x2c
[ 25.760964] [<ffffffff80047a10>] kthread+0xd8/0xfc
[ 25.764660] [<ffffffff80010c48>] ret_from_fork_kernel+0x18/0x1c4
[ 25.769220] [<ffffffff80895fe6>] ret_from_fork_kernel_asm+0x16/0x18
[ 25.774018] Code: cccc cccc cccc cccc cccc cccc cccc cccc cccc cccc (cccc) cccc
Bỏ __init khỏi chữ ký hàm để ngăn chặn sự cố này xảy ra.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.