CVE-2024-39291 in Linuxinformazioni

Riassunto

di VulDB • 16/06/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

drm/amdgpu: Correzione della dimensione del buffer in gfx_v9_4_3_init_cp_compute_microcode() e rlc_microcode()

La funzione gfx_v9_4_3_init_microcode in gfx_v9_4_3.c generava un avviso potenziale di troncamento dell'output durante l'utilizzo della funzione snprintf. Il problema era dovuto al fatto che la dimensione del buffer 'ucode_prefix' era troppo piccola per contenere la lunghezza massima possibile della stringa scritta al suo interno.

La stringa da scrivere è "amdgpu/%s_mec.bin" o "amdgpu/%s_rlc.bin", dove %s viene sostituito dal valore di 'chip_name'. La lunghezza di questa stringa senza il %s è di 16 caratteri. Il messaggio di avviso indicava che 'chip_name' poteva essere lungo fino a 29 caratteri, risultando in un totale di 45 caratteri, che supera la dimensione del buffer di 30 caratteri.

Per risolvere questo problema, la dimensione del buffer 'ucode_prefix' è stata ridotta da 30 a 15. Ciò garantisce che la lunghezza massima possibile della stringa scritta nel buffer non ne superi le dimensioni, prevenendo così potenziali problemi di overflow e troncamento del buffer.

Risolve i seguenti avvisi con gcc W=1: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c: Nella funzione ‘gfx_v9_4_3_early_init’: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:379:52: warning: l'output della direttiva ‘%s’ potrebbe essere troncato scrivendo fino a 29 byte in una regione di dimensione 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: l'output di ‘snprintf’ tra 16 e 45 byte in una destinazione di dimensione 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: warning: l'output della direttiva ‘%s’ potrebbe essere troncato scrivendo fino a 29 byte in una regione di dimensione 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: l'output di ‘snprintf’ tra 16 e 45 byte in una destinazione di dimensione 30 413 | snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", chip_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!