CVE-2026-31488 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 10.

리눅스 커널에서 다음 취약점이 해결되었습니다:

drm/amd/display: DSC 검증 중 관련 없는 모드 변경을 건너뛰지 않도록 수정

커밋 17ce8a6907f7("drm/amd/display: atomic check에서 DSC 사전 검증 추가")부터 amdgpu는 특정 스트림에 대해 타이밍 변경이 발생하지 않는 경우 DSC 구성을 재계산할 때 CRTC 상태의 mode_changed 플래그를 false로 초기화합니다.

그러나 MST/DSC 구성 변경이 다른(관련 없는) 모드 변경과 동일한 KMS 커밋에서 발생하는 시나리오에서는 이것이 잘못되었습니다. 예를 들어, 노트북의 내장 패널은 외부 화면이 연결되어 있는지 여부에 따라(HDR 활성화/비활성화 등) 다르게 구성될 수 있습니다. 이 경우 외부 DP-MST 화면을 연결하면 pre_validate_dsc()에서의 사전 계산 중 내장 패널의 DSC 구성이 변경되지 않았기 때문에 해당 패널에 대한 mode_changed 플래그가 잘못 제거될 수 있습니다.

이 시점에서 dm_update_crtc_state()는 DSC에 독립적인 모드 변경이 있는 CRTC에 대해 새로운 스트림을 이미 생성했습니다. 이에 따라 amdgpu_dm_commit_streams()는 이전 스트림을 해제하지 않게 되어 메모리 누수가 발생합니다. 또한 amdgpu_dm_atomic_commit_tail()은 새로운 스트림에 대한 참조를 획득하지도 않으며, 이는 나중에 스트림이 비활성화될 때 use-after-free로 나타납니다:

BUG: KASAN: use-after-free in dc_stream_release+0x25/0x90 [amdgpu]
Write of size 4 at addr ffff88813d836524 by task kworker/9:9/29977

Workqueue: events drm_mode_rmfb_work_fn Call Trace: dump_stack_lvl+0x6e/0xa0 print_address_description.constprop.0+0x88/0x320 ? dc_stream_release+0x25/0x90 [amdgpu]
print_report+0xfc/0x1ff ? srso_alias_return_thunk+0x5/0xfbef5 ? __virt_addr_valid+0x225/0x4e0 ? dc_stream_release+0x25/0x90 [amdgpu]
kasan_report+0xe1/0x180 ? dc_stream_release+0x25/0x90 [amdgpu]
kasan_check_range+0x125/0x200 dc_stream_release+0x25/0x90 [amdgpu]
dc_state_destruct+0x14d/0x5c0 [amdgpu]
dc_state_release.part.0+0x4e/0x130 [amdgpu]
dm_atomic_destroy_state+0x3f/0x70 [amdgpu]
drm_atomic_state_default_clear+0x8ee/0xf30 ? drm_mode_object_put.part.0+0xb1/0x130 __drm_atomic_state_free+0x15c/0x2d0 atomic_remove_fb+0x67e/0x980

DSC 검증 시점에 CRTC에 관련 없는 모드 변경이 대기 중인지 여부를 확인할 수 있는 신뢰할 수 있는 방법이 없으므로, CRTC가 DSC 구성 변경으로 인해 잠재적으로 영향을 받는 것으로 표시되기 전의 mode_changed 플래그 값을 기억해 둡니다. pre_validate_dsc()에서 mode_changed 플래그를 이 이전 값으로 재설정합니다.

(cherry picked from commit cc7c7121ae082b7b82891baa7280f1ff2608f22b)

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

Linux

예약하다

2026. 03. 09.

모더레이션

수락

항목

VDB-358866

EPSS

0.00015

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!