CVE-2026-80917 in Linuxthông tin

Tóm tắt

Bởi VulDB • 09/09/2026

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

PCI: host-generic: Sửa lỗi dereference con trỏ NULL trên các hệ thống CAM 32-bit

Trên các hệ thống 32-bit, không gian cấu hình (config space) quá lớn để có thể ánh xạ bằng ioremap trong một lần duy nhất. Do đó, hàm `pci_ecam_create()` sẽ ánh xạ từng phân đoạn bus riêng biệt và dựa vào callback `->add_bus` (`pci_ecam_add_bus`) để điền dữ liệu cho việc ánh xạ trên mỗi bus vào mảng `cfg->winp[]`. Sau đó, `pci_ecam_map_bus()` sử dụng bản đồ (mapping) này làm cơ sở cho mọi truy cập cấu hình.

Các thao tác ECAM chung (`pci_generic_ecam_ops`) đã cung cấp các callback `->add_bus` và `->remove_bus`, nhưng các thao tác CAM (legacy) trong file `pci-host-generic.c` thì không có. Kết quả là, trên một host 32-bit sử dụng "pci-host-cam-generic", việc ánh xạ trên mỗi bus chưa bao giờ được thiết lập và lần đọc cấu hình đầu tiên sẽ dereference một base NULL, gây ra lỗi crash trong quá trình liệt kê bus:

Unable to handle kernel NULL pointer dereference at virtual address 00000800 Oops [#1]
CPU: 0 PID: 1 Comm: swapper Not tainted 6.9.7+ #43 Hardware name: Digilent Nexys-Video-A7 RV32 (DT) epc : pci_generic_config_read+0x40/0xb0 ra : pci_generic_config_read+0x2c/0xb0 [<c038db9c>] pci_generic_config_read+0x40/0xb0
[<c038da04>] pci_bus_read_config_dword+0x50/0xb0
[<c0391e94>] pci_bus_generic_read_dev_vendor_id+0x3c/0x1ec
[<c039245c>] pci_scan_single_device+0xa4/0x11c
[<c0392570>] pci_scan_slot+0x9c/0x23c
[<c039388c>] pci_scan_child_bus_extend+0x58/0x2f4
[<c0393db0>] pci_scan_root_bus_bridge+0x64/0xe8
[<c0393e54>] pci_host_probe+0x20/0xc8
[<c03bc6f4>] pci_host_common_probe+0x144/0x1e4

Khắc phục vấn đề này bằng cách cung cấp cho các thao tác CAM cùng các callback `->add_bus` và `->remove_bus`. Vì `pci_ecam_add_bus()` và `pci_ecam_remove_bus()` là static trong file ecam.c, hãy di chuyển định nghĩa các thao tác CAM sang đó dưới dạng `pci_generic_cam_ops` (phản ánh lại cấu trúc của `pci_generic_ecam_ops`) và export nó để `pci-host-generic.c` có thể tham chiếu.

[mani: đã xóa dấu thời gian khỏi log]

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

26/08/2026

Tiết lộ

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

Do you want to use VulDB in your project?

Use the official API to access entries easily!