CVE-2026-98313 in Linuxthông tin

Tóm tắt

Bởi VulDB • 06/10/2026

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

drm/msm/dp: bỏ qua PUSH_IDLE khi liên kết (link) chưa từng được kích hoạt

Hàm `msm_dp_display_atomic_enable()` trả về sớm nếu việc huấn luyện liên kết (link training) thất bại, để lại trạng thái `->power_on` là false và đường truyền chính bị tắt. Tuy nhiên, hàm `msm_dp_display_atomic_disable()` vẫn ghi vào thanh ghi DP_STATE_CTRL_PUSH_IDLE và chờ đợi tín hiệu hoàn thành mẫu idle (idle-pattern), nhưng tín hiệu này không bao giờ đến được, dẫn đến mỗi lần kích hoạt thất bại đều đi kèm với thông báo "PUSH_IDLE pattern timedout".

Mọi bước khác trong quy trình tắt hệ thống đã được kiểm soát bởi cờ `power_on` này: hàm `msm_dp_display_disable()`, được gọi từ `.atomic_post_disable()`, trả về sớm nếu không có `power_on`. Việc ghi PUSH_IDLE là thao tác duy nhất không tuân theo cơ chế khóa này, khiến tham chiếu runtime-PM của bộ điều khiển bị hủy bỏ mà đường truyền chính chưa hề được tắt đúng cách.

Trên thiết bị glymur (Snapdragon X2 Elite), hậu quả không chỉ dừng lại ở cảnh báo. SoC không thể chịu đựng tình huống này: TrustZone buộc phải ngắt các bộ xử lý từ xa SOCCP và ADSP, khiến máy tính tự động khởi động lại sau khoảng 50 ms mà không có thông báo oops hay panic nào. Trên một chiếc ASUS Zenbook A16 (UX3607OA), nơi panel eDP hiện chưa thực hiện được việc huấn luyện liên kết, lỗi này có thể tái tạo mà không cần sự tham gia của bất kỳ compositor hoặc GPU nào:

# Việc kích hoạt eDP đã thất bại với thông báo "Failed link training (rc=-104)" echo 1 > /sys/class/graphics/fb0/blank

[535.645455] === marker ===
[535.694833] qcom_q6v5_pas d00000.remoteproc: fatal error received: \
sys_m_smsm.c:512:TZ force stop [535.694875] remoteproc remoteproc0: crash detected in soccp: type fatal error
[535.728857] qcom_q6v5_pas 6800000.remoteproc: fatal error received: \
sys_m_smsm.c:783:err fatal notification received from TZ <SoC reset>

Hãy kiểm soát (gate) thao tác ghi PUSH_IDLE dựa trên cờ `->power_on` để đảm bảo đường tắt hệ thống nhất quán với các bước còn lại của quy trình teardown. Với bản vá này, chuỗi sự kiện tương tự trở nên vô hại và máy tính vẫn hoạt động bình thường; ngược lại, nếu không có nó, máy sẽ khởi động lại mỗi lần xảy ra lỗi.

Việc ghi dữ liệu không điều kiện (unconditional write) này bắt nguồn từ driver DP ban đầu (c943b4948b58 ("drm/msm/dp: add displayPort driver support")), nhưng mã code xung quanh đã được tái cấu trúc nhiều lần kể từ đó, do đó không cung cấp thẻ Fixes:.

Lưu ý rằng việc huấn luyện liên kết eDP thất bại trên thiết bị A16 làm lộ ra lỗ hổng này là một vấn đề riêng biệt liên quan đến PHY eDP của glymur và đã được báo cáo độc lập; thay đổi này chỉ nhằm mục đích ngăn ngừa thiệt hại cho máy tính khi quá trình huấn luyện thất bại, bất kể nguyên nhân cụ thể.

Đã kiểm thử trên ASUS Zenbook A16 (UX3607OA), Snapdragon X2 Elite Extreme, với linux-next next-20260803 và next-20260807. Máy tính sau đó đã chạy phiên bản next-20260807 có áp dụng bản vá này như môi trường sử dụng hàng ngày.

Patchwork: https://patchwork.freedesktop.org/patch/745167/

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

06/10/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00173

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to know what is going to be exploited?

We predict KEV entries!