CVE-2024-39291 in Linux
Sumário
de VulDB • 11/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
drm/amdgpu: Correção do tamanho do buffer em gfx_v9_4_3_init_cp_compute_microcode() e rlc_microcode()
A função gfx_v9_4_3_init_microcode em gfx_v9_4_3.c estava gerando um aviso potencial de truncamento de saída ao usar a função snprintf. O problema era devido ao tamanho do buffer 'ucode_prefix' ser muito pequeno para acomodar o comprimento máximo possível da string sendo escrita nele.
A string sendo escrita é "amdgpu/%s_mec.bin" ou "amdgpu/%s_rlc.bin", onde %s é substituído pelo valor de 'chip_name'. O comprimento desta string sem o %s é de 16 caracteres. A mensagem de aviso indicou que 'chip_name' poderia ter até 29 caracteres de comprimento, resultando em um total de 45 caracteres, o que excede o tamanho do buffer de 30 caracteres.
Para resolver este problema, o tamanho do buffer 'ucode_prefix' foi reduzido de 30 para 15. Isso garante que o comprimento máximo possível da string sendo escrita no buffer não exceda seu tamanho, prevenindo assim potenciais problemas de buffer overflow e truncamento.
Corrige o seguinte com gcc W=1: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c: Na função ‘gfx_v9_4_3_early_init’: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:379:52: aviso: a saída da diretiva ‘%s’ pode ser truncada escrevendo até 29 bytes em uma região de tamanho 23 [-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: nota: a saída de ‘snprintf’ entre 16 e 45 bytes em um destino de tamanho 30 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: aviso: a saída da diretiva ‘%s’ pode ser truncada escrevendo até 29 bytes em uma região de tamanho 23 [-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: nota: a saída de ‘snprintf’ entre 16 e 45 bytes em um destino de tamanho 30 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.