CVE-2026-98946 in Linuxthông tin

Tóm tắt

Bởi VulDB • 23/10/2026

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

drm/vc4: Tắt ngắt V3D trong suốt quá trình runtime suspend (tạm dừng thời gian chạy)

vc4_irq_disable() che chắn (mask) các nguồn ngắt V3D và sau đó gọi synchronize_irq() trước khi V3D bị tắt nguồn. Tuy nhiên, bản thân điều này là chưa đủ để làm im lặng (quiesce) bộ xử lý ngắt.

synchronize_irq() chờ đợi các trình xử lý đã đặt IRQD_IRQ_INPROGRESS, cũng như các irqchips báo cáo trạng thái IRQCHIP_STATE_ACTIVE. Một chip ngắt GIC có thể đánh dấu một ngắt ở trạng thái active ngay khi CPU xác nhận nó, do đó các kiểm tra này bao phủ toàn bộ đường dẫn dispatch (phân phối). Tuy nhiên, trên RPi 0-3, bộ điều khiển ngắt là ARMCTRL, không có trạng thái active. Một CPU đã đọc hwirq từ thanh ghi pending nhưng chưa đạt đến handle_level_irq() sẽ ở trạng thái vô hình đối với synchronize_irq().

Trong quá trình chuyển đổi nguồn điện (power transition), vc4_irq() do đó có thể chạy sau khi miền nguồn (power domain) đã tắt, nơi mọi phép đọc thanh ghi V3D đều trả về 0xdeadbeef. Giá trị 0xdeadbeef đặt các cờ FLDONE, FRDONE và OUTOMEM. Vấn đề này không kích hoạt lỗi dereference con trỏ NULL chỉ vì các hàm vc4_irq_finish_bin_job() và vc4_irq_finish_render_job() thoát sớm khi không có con trỏ job (tác vụ), nhưng OUTOMEM vẫn có thể lên lịch cho vc4_overflow_mem_work() sau khi vc4_irq_disable() đã hủy nó.

Do đó, hãy khắc phục các ngắt giả bằng cách tắt đường dẫn ngắt trong suốt quá trình chuyển đổi PM (Quản lý nguồn điện). Để duy trì sự cân bằng enable/disable, hãy di chuyển vc4_irq_install() và yêu cầu đường dẫn IRQ bị vô hiệu hóa trước lần runtime resume (phục hồi thời gian chạy) đầu tiên.

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

23/10/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

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!