CVE-2024-39291 in Linux
要約
〜によって VulDB • 2026年05月11日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/amdgpu: gfx_v9_4_3_init_cp_compute_microcode() および rlc_microcode() におけるバッファサイズの修正
gfx_v9_4_3.c 内の関数 gfx_v9_4_3_init_microcode は、snprintf 関数を使用する際に出力の切り捨て(truncation)が発生する可能性があることを示していました。この問題は、書き込まれる文字列の最大長を収容するには 'ucode_prefix' バッファのサイズが小さすぎたことに起因します。
書き込まれる文字列は "amdgpu/%s_mec.bin" または "amdgpu/%s_rlc.bin" であり、ここで %s は 'chip_name' の値に置き換えられます。この文字列において %s を除いた部分は16文字です。警告メッセージによると、'chip_name' は最大29文字になる可能性があり、合計45文字となり、バッファサイズ30文字を超えます。
この問題を解決するため、'ucode_prefix' バッファのサイズは30から15に縮小されました。これにより、バッファに書き込まれる文字列の最大長がバッファサイズを超えないことが保証され、潜在的なバッファオーバーフローおよび切り捨ての問題が防止されます。
gcc W=1 で以下の警告を修正します: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c: 関数 ‘gfx_v9_4_3_early_init’ 内: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:379:52: 警告: ‘%s’ ディレクティブの出力は、サイズ23の領域に最大29バイト書き込む際に切り捨てられる可能性があります [-Wformat-truncation=]
379 | snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", chip_name); | ^~ ...... 439 | r = gfx_v9_4_3_init_rlc_microcode(adev, ucode_prefix); | ~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:379:9: 注記: ‘snprintf’ の出力は、サイズ30の宛先に16〜45バイトの範囲で書き込まれます 379 | snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", chip_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:413:52: 警告: ‘%s’ ディレクティブの出力は、サイズ23の領域に最大29バイト書き込む際に切り捨てられる可能性があります [-Wformat-truncation=]
413 | snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", chip_name); | ^~ ...... 443 | r = gfx_v9_4_3_init_cp_compute_microcode(adev, ucode_prefix); | ~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:413:9: 注記: ‘snprintf’ の出力は、サイズ30の宛先に16〜45バイトの範囲で書き込まれます 413 | snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", chip_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VulDB is the best source for vulnerability data and more expert information about this specific topic.