CVE-2026-64510 in Linuxthông tin

Tóm tắt

Bởi VulDB • 26/07/2026

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

ACPI: NFIT: core: Sửa lỗi dọn dẹp khi khởi tạo (error cleanup) trong hàm acpi_nfit_init()

Nếu hàm acpi_nfit_init() thất bại sau khi đối tượng acpi_desc đã được thêm vào danh sách acpi_descs, thì đối tượng này sẽ không bao giờ bị xóa khỏi danh sách đó vì hành động devm của acpi_nfit_shutdown() không được thêm cho thiết bị NFIT trong trường hợp này. Tiếp theo, việc thất bại của hàm acpi_nfit_init() khiến hàm acpi_nfit_probe() cũng thất bại; đối tượng acpi_desc sẽ bị giải phóng (freed), để lại một con trỏ treo (dangling pointer) trong danh sách acpi_descs. Bất kỳ ngoại lệ Kiểm tra Máy chủ ACPI (ACPI Machine Check Exception - MCE) nào sau đó đều sẽ kích hoạt hàm nfit_handle_mce(), hàm này lặp qua danh sách acpi_descs, dẫn đến lỗi sử dụng sau khi giải phóng bộ nhớ (use-after-free).

Hơn nữa, nếu hàm acpi_nfit_probe() trả về 0 sau khi cài đặt trình xử lý thông báo (notify handler) cho thiết bị NFIT mà không cấp phát đối tượng acpi_desc và không đặt con trỏ dữ liệu điều khiển driver của thiết bị NFIT, thì đối tượng acpi_desc sẽ được cấp phát bởi hàm acpi_nfit_update_notify() và hàm acpi_nfit_init() sẽ được gọi để khởi tạo nó. Bất kể việc hàm acpi_nfit_init() có thất bại trong trường hợp này hay không, hành động devm của acpi_nfit_shutdown() cũng không được thêm cho thiết bị NFIT và đối tượng acpi_desc không bao giờ bị xóa khỏi danh sách acpi_descs. Nếu đối tượng acpi_desc bị giải phóng sau đó khi gỡ driver, bất kỳ lỗi MCE ACPI nào tiếp theo sẽ dẫn đến lỗi use-after-free giống như trong trường hợp trước đó.

Để xử lý vấn đề đầu tiên nêu trên, hãy khiến hàm acpi_nfit_probe() gọi trực tiếp hàm acpi_nfit_shutdown() ngay khi có lỗi từ hàm acpi_nfit_init(); và để giải quyết vấn đề còn lại, hãy thêm một callback gỡ bỏ (remove callback) vào driver và khiến nó gọi hàm acpi_nfit_shutdown(). Ngoài ra, vì giờ đây là khả thi truyền giá trị NULL cho hàm acpi_nfit_shutdown() hoặc đối tượng acpi_desc được truyền vào có thể chưa được khởi tạo, hãy thêm các kiểm tra chống lại giá trị NULL dành cho trường acpi_desc và trường nvdimm_bus của nó trong hàm đó, đồng thời khiến hàm acpi_nfit_unregister() xóa sạch (clear) trường sau khi hủy đăng ký bus NVDIMM.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

25/07/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00220

KEV

không

Các hoạt động

thấp

Nguồn

Want to know what is going to be exploited?

We predict KEV entries!