CVE-2024-39291

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: drm/amdgpu: gfx_v9_4_3_init_cp_compute_microcode() ve rlc_microcode() fonksiyonlarındaki tampon boyutu düzeltildi gfx_v9_4_3.c dosyasındaki gfx_v9_4_3_init_microcode fonksiyonu, snprintf fonksiyonu kullanılırken çıktının potansiyel olarak kesilmesiyle ilgili bir sorun oluşturuyordu. Sorun, 'ucode_prefix' tamponunun boyutunun, içine yazılan dizginin mümkün olan maksimum uzunluğunu karşılamak için çok küçük olmasından kaynaklanıyordu. Yazılan dizgi, %s kısmının 'chip_name' değeri ile değiştirildiği "amdgpu/%s_mec.bin" veya "amdgpu/%s_rlc.bin" şeklindedir. Bu dizginin %s hariç uzunluğu 16 karakterdir. Uyarı mesajı, 'chip_name' değerinin 29 karaktere kadar çıkabileceğini, bunun da toplamda 30 karakterlik tampon boyutunu aşan 45 karakterle sonuçlandığını belirtiyordu. Bu sorunu çözmek için 'ucode_prefix' tamponunun boyutu 30'dan 15'e düşürülmüştür. Bu işlem, tampona yazılan dizginin mümkün olan maksimum uzunluğunun tampon boyutunu aşmamasını sağlayarak potansiyel arabellek taşması ve kesilme sorunlarını önler. gcc W=1 ile aşağıdakiler düzeltilmiştir: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c: In function ‘gfx_v9_4_3_early_init’: drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:379:52: warning: ‘%s’ directive output may be truncated writing up to 29 bytes into a region of size 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: note: ‘snprintf’ output between 16 and 45 bytes into a destination of size 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: ‘%s’ directive output may be truncated writing up to 29 bytes into a region of size 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: note: ‘snprintf’ output between 16 and 45 bytes into a destination of size 30 413 | snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", chip_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın24 Haz 2024
İlk görülme24 Haz 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.6.33, 6.9.4 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.5 ≤ v < 6.6.33, 6.7 ≤ v < 6.9.4, 6.106.6.33, 6.9.4

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2024-39291 · Linux Kernel · Dark Radar