CVE-2026-89722
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: PCI/sysfs: pci_write_legacy_io() fonksiyonundaki sınır dışı okuma hatası düzeltildi pci_write_legacy_io(), kullanıcı alanının kaç bayt yazdığından bağımsız olarak kernfs yazma tamponundan 4 bayt yükler: if (count != 1 && count != 2 && count != 4) return -EINVAL; return pci_legacy_write(bus, off, *(u32 *)buf, count); kernfs_fop_write_iter() tamponu kmalloc(len + 1) ile ayırır, bu nedenle legacy_io sysfs dosyasına yapılan 1 baytlık bir yazma işlemi 2 bayt ayırır ve koşulsuz u32 yüklemesi, ayrılan alanın sonunun 2 bayt ötesine kadar okuma yapar; bu durum KASAN tarafından slab-out-of-bounds read olarak raporlanır. Benzer şekilde, 2 baytlık bir yazma işlemi 1 bayt fazla okur. Bu nedenle, 2 ve 4 baytlık durumlar için get_unaligned_le16() ve get_unaligned_le32() kullanılarak yalnızca talep edilen bayt sayısı okunmalı ve PCI I/O port alanı bayt sıralamasıyla eşleşmesi için tampon little-endian olarak yorumlanmalıdır. PowerPC uygulaması, daha önce genel kodun yerel uçlu (native-endian) 32 bitlik yüklemesini, 1 ve 2 baytlık durumlar için değeri uygun konuma kaydırarak telafi ediyordu. Bu kaydırmalar yalnızca big-endian çekirdeklerde doğruydu. Little-endian PowerPC (POWER8 ve sonrası) üzerinde yanlış baytlar çıkarılıyordu, bu nedenle 1 baytlık bir yazma işlemi istenen değer yerine sınır dışı bir bayt yazıyordu. Big-endian üzerinde ise yerel yükleme, 2 ve 4 baytlık yazmalar için out_le16() ve out_le32() fonksiyonlarının kullanıcının baytlarını hatta ters çevirmesine neden oluyordu. Little-endian yardımcıları her iki sorunu da çözmektedir, bu nedenle kaydırmalar kaldırılmıştır. Alpha platformu için herhangi bir değişiklik gerekmemektedir. legacy_io dosyası yalnızca root yetkisine sahiptir ve sadece HAVE_PCI_LEGACY tanımlayan iki mimari olan Alpha ve PowerPC üzerinde bulunur.
Nasıl düzeltilir
- Linux Linuxe892f05f1f790d5721cd8e3c561ed76da7e08bae, 7a99e9c7011905734cc2739038f2a224b6be0d1f, dc76258d0132df1d831a5a29758bd448ca9c566e 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 < e892f05f1f790d5721cd8e3c561ed76da7e08bae, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7a99e9c7011905734cc2739038f2a224b6be0d1f, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < dc76258d0132df1d831a5a29758bd448ca9c566e, 2.6.12 | e892f05f1f790d5721cd8e3c561ed76da7e08bae, 7a99e9c7011905734cc2739038f2a224b6be0d1f, dc76258d0132df1d831a5a29758bd448ca9c566e |
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.