| タイトル | LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性 |
|---|---|
| 概要 | Linuxカーネルにおけるdrm/amd/displayの脆弱性は、DSC検証時に無関係なモード変更をスキップしない点にあります。コミット17ce8a6907f7以降、amdgpuは特定のストリームのタイミングに変更がない場合にCRTC状態のmode_changedフラグをfalseにリセットしますが、MST/DSC構成の変更が無関係なモード変更と同じKMSコミットで発生すると、この処理は正しく機能しません。例えば、内蔵パネルのDSC構成が外部画面接続の有無により変わらない場合、mode_changedフラグが誤って無視されますが、この状態でdm_update_crtc_state()は新しいストリームを作成し、amdgpu_dm_commit_streams()は古いストリームを解放せずメモリリークが発生します。さらにamdgpu_dm_atomic_commit_tail()では新しいストリーム参照を取得しないため、後にuse-after-freeが生じます。具体的にはKASANのuse-after-freeエラーが発生します。この問題を解決するために、DSC検証時にCRTCの無関係なモード変更が保留中かどうかを判断できないため、前のmode_changedフラグの値を記憶し、pre_validate_dsc()内でその値にリセットする修正を加えました。 |
| 想定される影響 | 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年4月22日0:00 |
| 登録日 | 2026年4月30日12:15 |
| 最終更新日 | 2026年4月30日12:15 |
| CVSS3.0 : 重要 | |
| スコア | 7.8 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Linux |
| Linux Kernel 5.18 |
| Linux Kernel 5.18.1 以上 6.12.80 未満 |
| Linux Kernel 6.13 以上 6.18.21 未満 |
| Linux Kernel 6.19 以上 6.19.11 未満 |
| Linux Kernel 7.0 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年04月30日] 掲載 |
2026年4月30日12:15 |
| 概要 | In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Do not skip unrelated mode changes in DSC validation Starting with commit 17ce8a6907f7 ("drm/amd/display: Add dsc pre-validation in However, this is incorrect in scenarios where a change in MST/DSC configuration At this point, however, dm_update_crtc_state() has already created new streams BUG: KASAN: use-after-free in dc_stream_release+0x25/0x90 [amdgpu] Workqueue: events drm_mode_rmfb_work_fn Since there is no reliable way of figuring out whether a CRTC has unrelated (cherry picked from commit cc7c7121ae082b7b82891baa7280f1ff2608f22b) |
|---|---|
| 公表日 | 2026年4月22日23:16 |
| 登録日 | 2026年4月25日4:05 |
| 最終更新日 | 2026年4月28日21:58 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.18.1 | 6.12.80 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.21 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.11 | |||
| cpe:2.3:o:linux:linux_kernel:5.18:-:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* | |||||