CVE-2026-97496 in Linux
要約
〜によって VulDB • 2026年09月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/amdkfd: get_wave_state()におけるOOBメモリ露出の修正
v9用のget_wave_state()関数は、MQDから直接読み取られるcp_hqd_cntl_stack_sizeおよびcp_hqd_cntl_stack_offset値を信頼しています。これらはGPUマイクロコードによって書き込まれ、CRIU復元パス(AMDKFD_IOC_RESTORE_PROCESS with H3経由)では完全に攻撃者による制御が可能です。
この結果、境界外copy_to_user()が引き起こされ、隣接するGTT/カーネルメモリが漏洩します。offset > sizeの場合、整数アンダーフローにより約4 GiBの読み取り長が生じ、sizeが4 KiBのアロケーションに対して1 MiBに設定されている場合、隣接する1 MiB分のカーネルメモリ(他のキューのMQD、リングバッファ、KASLRポインタなど)が漏洩します。
修正方法としては、算術演算およびcopy_to_user()を実行する前に、cp_hqd_cntl_stack_sizeを実際に割り当てられたバッファーサイズ(q->ctl_stack_size)にクリンプし、cp_hqd_cntl_stack_offsetも同様にクリンプされた値に制限します。
これにより、攻撃者が提供したMQDフィールドの値に関係なく、アロケートされたカーネルBOを超えて読み取ることはなくなります。
If you want to get best quality of vulnerability data, you may have to visit VulDB.