CVE-2026-74641
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: ALSA: usx2y: hwdep mmap hata ofsetini sınırlandırın snd_us428ctls_vm_fault(), hata veren sayfa ofsetini herhangi bir sınırlandırma olmaksızın bir çekirdek adresine dönüştürür: offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char *)(...)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); vmf->page = page; return 0; snd_us428ctls_mmap() yalnızca eşlemenin uzunluğunu kontrol eder, ofseti asla kontrol etmez ve us428ctls_sharedmem, alloc_pages_exact() ile ayrılmış tek bir sayfadır. Bir karakter aygıtı için file_mmap_size_max() ULONG_MAX döndürür, bu nedenle mm katmanı da herhangi bir üst sınır getirmez. Sıfırın üzerindeki her sayfa ofseti, nesnenin dışındaki bir struct page yapısına çözümlenir ve işleyici bunu çağıranın adres alanına okuma-yazma şeklinde kurar; vma salt okunur olarak işaretlenmemiştir. Çağıran taraf, tek bir mmap() argümanıyla sayfa çerçevesini seçer ve sahibi olmadığı bir çekirdek bellek sayfasına okuma-yazma erişimi sağlar; doldurulmamış bir vmemmap bölgesine denk gelen bir ofset ise bunun yerine oops hatasına yol açar. Bağlı bir US-X2Y cihazının hwdep düğümünü açabilen bir işlem, aynı düğüm üzerinden FPGA görüntüsünü yükledikten sonra buraya ulaşır; herhangi bir yetenek (capability) kontrolü uygulanmaz. 7.2.0-rc5 (arm64) sürümünde, büyük bir ofset ile yapılan mmap(): Unable to handle kernel paging request at virtual address fffffdffc45d5ac8 pc : snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y] Call trace: snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y] __do_fault __handle_mm_fault handle_mm_fault el0_da Paylaşılan bölgenin dışındaki tüm ofsetleri reddedin. usx2yhwdeppcm.c dosyasındaki pcm hwdep işleyicisi de adresini aynı şekilde hesaplar ve aynı sınırlamaya ihtiyaç duyar. XBOW tarafından keşfedilmiş, Baul Lee <[email protected]> tarafından analiz edilmiştir.
Nasıl düzeltilir
- Linux Linuxad6fedea65c6e90eda00d716c8bf20cdc437ed10, 10a87401fb3148c388e55df0148295b3b137da07, 34ab56ed854baa73a731cfd99af689f0b1bac444, 4208db2453e1ea71b8048a5b7802360cb29a53f1, f613b4a2d87247b51a1b2b330f2e083a454125f2, f75d6f61f0d9c5c1ea725104014e10d26d1e3a00, 5bf5ccddf00b59f1e3ea7e65d76a5f5b5c21cc2e, 2ca1eea3cd17930daffe9e429a7c89232036ec24 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < ad6fedea65c6e90eda00d716c8bf20cdc437ed10, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 10a87401fb3148c388e55df0148295b3b137da07, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 34ab56ed854baa73a731cfd99af689f0b1bac444, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 4208db2453e1ea71b8048a5b7802360cb29a53f1, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < f613b4a2d87247b51a1b2b330f2e083a454125f2, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < f75d6f61f0d9c5c1ea725104014e10d26d1e3a00, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 5bf5ccddf00b59f1e3ea7e65d76a5f5b5c21cc2e, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 2ca1eea3cd17930daffe9e429a7c89232036ec24, 2.6.12 | ad6fedea65c6e90eda00d716c8bf20cdc437ed10, 10a87401fb3148c388e55df0148295b3b137da07, 34ab56ed854baa73a731cfd99af689f0b1bac444, 4208db2453e1ea71b8048a5b7802360cb29a53f1, f613b4a2d87247b51a1b2b330f2e083a454125f2, f75d6f61f0d9c5c1ea725104014e10d26d1e3a00, 5bf5ccddf00b59f1e3ea7e65d76a5f5b5c21cc2e, 2ca1eea3cd17930daffe9e429a7c89232036ec24 |
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.