CVE-2026-68436
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: drm/amd/display: struct dc tahsisi için kvzalloc kullanılıyor struct dc zamanla büyümüştür (büyük kısmı iki satır içi dc_scratch_space kopyasıdır) ve artık sayfa ayırıcısının 4 MiB bitişik tahsis sınırına yaklaşmaktadır. Gerçek boyutu yalnızca kaynak koduyla sabit değildir; derleyiciye ve .config dosyasına da bağlıdır, bu nedenle kolayca 4 MiB'yi aşabilir, örneğin daha yeni bir GCC veya yapılandırma değişikliğiyle. dc_create() bunu kzalloc() ile tahsis eder. struct dc 4 MiB'yi aştığında istek order 11'e (8 MiB) yuvarlanır; bu MAX_PAGE_ORDER üzerindedir, dolayısıyla sayfa ayırıcısı uyarı verir ve NULL döndürür. Ardından dc_create() başarısız olur, DM başlatma başarısız olur ve amdgpu probe -EINVAL ile iptal edilir: WARNING: mm/page_alloc.c:5197 at __alloc_frozen_pages_noprof+0x2f9/0x380 dc_create+0x38/0x660 [amdgpu] amdgpu_dm_init+0x2d9/0x510 [amdgpu] dm_hw_init+0x1b/0x90 [amdgpu] amdgpu_device_init.cold+0x150d/0x1e13 [amdgpu] amdgpu_driver_load_kms+0x19/0x80 [amdgpu] amdgpu_pci_probe+0x1e2/0x4c0 [amdgpu] Ardından dc_create() NULL döndürür ve DM başlatma başarısız olur; bu da tüm GPU başlatmayı iptal eder ve amdgpu probe'un -EINVAL ("hw_init of IP block <dm> failed -22") ile başarısız olmasına yol açarak ekranı kullanılamaz hale getirir. Kapatma sırasında görülen sonraki amdgpu_irq_put() uyarıları yalnızca yarı başlatılmış bir aygıtın geri alınmasının yan etkisidir. struct dc, hiçbir zaman donanım DMA'sına verilmeyen ve yalnızca opak bir işaretçi olarak tutulan, yalnızca yazılıma ait bir kayıt yapısıdır, dolayısıyla fiziksel olarak bitişik belleğe ihtiyaç duymaz. Bu boyutta bitişik bir tahsis mevcut olmadığında ayırıcının vmalloc()'a geri dönebilmesi ve MAX_PAGE_ORDER uyarısından tamamen kaçınılması için bunu kvzalloc() ile tahsis edin (ve kvfree() ile serbest bırakın). v2: - amd-staging-drm-next üzerine yeniden temellendirildi. (991e0516a8072f2292681c6ae98a924ab0e32575 commit'inden cherry pick edilmiştir)
Nasıl düzeltilir
- Linux Linuxdd8506091e9f1e111d9964f5ec2348d7d5157bf2, c59a693fbd213f8f27942509b48b1a4111fdd40d, dbad70d40cad9c5e7586953275287fe7531fb811, 75050390151a14802be433c3856ddcb483cecd24 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | d62d5551dd615f9e488b13595d69b308cd019e16 ≤ v < dd8506091e9f1e111d9964f5ec2348d7d5157bf2, d62d5551dd615f9e488b13595d69b308cd019e16 ≤ v < c59a693fbd213f8f27942509b48b1a4111fdd40d, d62d5551dd615f9e488b13595d69b308cd019e16 ≤ v < dbad70d40cad9c5e7586953275287fe7531fb811, d62d5551dd615f9e488b13595d69b308cd019e16 ≤ v < 75050390151a14802be433c3856ddcb483cecd24, 6.10 | dd8506091e9f1e111d9964f5ec2348d7d5157bf2, c59a693fbd213f8f27942509b48b1a4111fdd40d, dbad70d40cad9c5e7586953275287fe7531fb811, 75050390151a14802be433c3856ddcb483cecd24 |
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.
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.