CVE-2026-64502
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: iio: adc: ad_sigma_delta: registerless cihazlar için clear_pending_event düzeltmesi has_registers = false olan ve rdy_gpiod bulunmayan cihazlarda ad_sigma_delta_clear_pending_event(), durum kaydedicisi okuma yoluna geçer. Bu tür cihazlar için ad_sd_read_reg(), adres baytını tamamen atlar ve herhangi bir adres aşaması olmadan ham MISO baytlarını saatler; bu da işlemi dönüştürme verilerini okumakla bayt bazında aynı hale getirir. Bekleyen bir dönüştürme sonucu mevcutsa, bu işlem sonucun bir kısmını tüketir ve ad_sigma_delta_single_conversion() içindeki sonraki ad_sd_read_reg() çağrısı için veri akışını bozar. Ayrıca, bu cihazlarda num_resetclks = 0 olduğunda, data_read_len değeri 0 olarak hesaplanır. Saatlenen baytta 7. bit temizse, pending_event ayarlanır ve kod memset(data + 2, 0xff, 0 - 1) işlemini gerçekleştirmeye çalışarak SIZE_MAX değerine taşma yapar ve heap alanını bozar. Hem rdy_gpiod hem de has_registers ayarlı olmadığında hemen 0 döndürülerek sorun giderilmiştir. Bu durum tüm mevcut registerless cihazlar için güvenlidir: ad7191 ve ad7780 (güç kapatma GPIO'su ile birlikte), dönüşümler arasında CS devre dışı bırakılarak sıfırlanır, dolayısıyla boşaltılacak eski bir sonuç yoktur; ad7780 (güç kapatma GPIO'su olmadan) ve max11205 sürekli dönüştürme yapar ve önceki sonucun okunup okunmadığına bakılmaksızın çıkış veri hızında ~DRDY döngüsü oluşturur, böylece bir sonraki düşen kenar doğal olarak tetiklenir. Veriler okunana kadar ~DRDY sinyalini aktif tutan gelecekteki bir registerless cihaz, bu erken dönüş nedeniyle çalışmayacaktır ve ya num_resetclks ayarının yapılmasına ya da bir rdy-gpio gerektirecektir. Aynı heap bozulmasına, rdy_gpiod ayarlı ancak num_resetclks = 0 olan herhangi bir cihazda ulaşılabilir: eğer GPIO bekleyen bir olayı belirtiyorsa, has_registers durumuna bakılmaksızın boşaltma yolu memset(data + 2, 0xff, 0 - 1) işlemini yürütür. Bekleyen olay kontrolünden sonra açık bir data_read_len == 0 koruması eklenmiştir; böylece eski sonuç, ad_sigma_delta_single_conversion() içindeki ilk ad_sd_read_reg() çağrısı tarafından tüketilir.
Nasıl düzeltilir
- Linux Linux3394e0b3328422431cadaf314fa58d3717ed4936, 3bceb26dfaf7ba805b459e41c1d0ba916862dade, 91bc6767a4f55dc470d8a56b55b9f2ea09094efe ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 132d44dc6966c1cf841ffe0f6f048165687e870b ≤ v < 3394e0b3328422431cadaf314fa58d3717ed4936, 132d44dc6966c1cf841ffe0f6f048165687e870b ≤ v < 3bceb26dfaf7ba805b459e41c1d0ba916862dade, 132d44dc6966c1cf841ffe0f6f048165687e870b ≤ v < 91bc6767a4f55dc470d8a56b55b9f2ea09094efe, 6.14 | 3394e0b3328422431cadaf314fa58d3717ed4936, 3bceb26dfaf7ba805b459e41c1d0ba916862dade, 91bc6767a4f55dc470d8a56b55b9f2ea09094efe |
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.