CVE-2026-74331 in Linuxthông tin

Tóm tắt

Bởi VulDB • 15/08/2026

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

firmware_loader: Sửa lỗi khóa đệ quy trong device_cache_fw_images()

Một tình trạng chết do khóa (deadlock) gây ra bởi việc khóa đệ quy có thể xảy ra trong trình xử lý thông báo quản lý nguồn của bộ tải firmware.

Trong quá trình chuẩn bị cho việc tạm ngưng hệ thống hoặc ngủ đông, fw_pm_notify() gọi hàm device_cache_fw_images(). Hàm này lấy khóa fw_lock để đặt trạng thái bộ đệm firmware thành FW_LOADER_START_CACHE và sau đó lặp qua tất cả các thiết bị bằng cách sử dụng dpm_for_each_dev() trong khi vẫn giữ khóa.

Đối với mỗi thiết bị, dev_cache_fw_image() lên lịch công việc bất đồng bộ để lưu trữ firmware vào bộ đệm. Nếu việc phân bổ bộ nhớ cho mục nhập công việc bất đồng bộ thất bại (ví dụ: trong điều kiện hết bộ nhớ), async_schedule_node_domain() sẽ chuyển sang thực thi hàm công việc một cách đồng bộ trên luồng hiện tại.

Đường dẫn thực thi đồng bộ (__async_dev_cache_fw_image() -> cache_firmware() -> request_firmware() -> assign_fw()) cố gắng lấy lại khóa fw_lock. Vì luồng hiện tại đã đang giữ khóa fw_lock, điều này dẫn đến tình trạng chết do khóa đệ quy.

Khắc phục vấn đề bằng cách giải phóng fw_lock ngay sau khi cập nhật trạng thái bộ đệm và trước khi gọi dpm_for_each_dev(). Khóa chỉ cần thiết để bảo vệ việc cập nhật trạng thái. Các yêu cầu firmware đồng thời sẽ nhìn thấy đúng trạng thái FW_LOADER_START_CACHE và sử dụng cơ chế piggyback, vốn được bảo vệ độc lập bởi fwc->name_lock của riêng nó.

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

15/08/2026

Tiết lộ

15/08/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

Might our Artificial Intelligence support you?

Check our Alexa App!