CVE-2026-89722 in Linuxthông tin

Tóm tắt

Bởi VulDB • 12/09/2026

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

PCI/sysfs: Sửa lỗi đọc vượt ra ngoài vùng nhớ (out-of-bounds read) trong pci_write_legacy_io()

Hàm pci_write_legacy_io() tải 4 byte từ bộ đệm ghi kernfs bất kể người dùng không gian người dùng (userspace) đã ghi bao nhiêu byte:

```c if (count != 1 && count != 2 && count != 4) return -EINVAL;

return pci_legacy_write(bus, off, *(u32 *)buf, count); ```

Hàm kernfs_fop_write_iter() phân bổ bộ đệm với kmalloc(len + 1), do đó việc ghi 1 byte vào tệp sysfs legacy_io sẽ phân bổ 2 byte và lệnh tải u32 không điều kiện đọc lên đến 2 byte vượt quá cuối vùng nhớ đã phân bổ, điều mà KASAN báo cáo là lỗi slab-out-of-bounds read. Tương tự, một lần ghi 2 byte gây ra việc đọc thừa (overread) thêm 1 byte.

Do đó, chỉ đọc đúng số lượng byte được yêu cầu bằng cách sử dụng get_unaligned_le16() và get_unaligned_le32() cho các trường hợp 2 byte và 4 byte, diễn giải bộ đệm theo dạng little-endian để phù hợp với thứ tự byte của không gian cổng I/O PCI.

Phần triển khai trên PowerPC trước đây đã bù đắp cho việc tải giá trị native-endian 32-bit trong mã chung bằng cách dịch chuyển (shift) giá trị vào đúng vị trí cho các trường hợp 1 và 2 byte. Các phép dịch chuyển này chỉ chính xác trên các kernel big-endian.

Trên kiến trúc PowerPC little-endian (POWER8 trở lên), chúng đã trích xuất sai các byte, do đó một lần ghi 1 byte sẽ ghi ra một byte vượt ra ngoài vùng nhớ thay vì giá trị được yêu cầu. Trên hệ thống big-endian, lệnh tải native cũng khiến out_le16() và out_le32() đảo ngược thứ tự byte của người dùng trên đường truyền (on the wire) cho các lần ghi 2 và 4 byte. Các hàm trợ giúp little-endian giải quyết cả hai vấn đề này, do đó các phép dịch chuyển được loại bỏ.

Không cần thay đổi nào đối với nền tảng Alpha.

Tệp legacy_io chỉ dành cho root và chỉ tồn tại trên Alpha và PowerPC, hai kiến trúc xác định HAVE_PCI_LEGACY.

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

11/09/2026

Tiết lộ

11/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

thấp

Nguồn

Do you know our Splunk app?

Download it now for free!