CVE-2025-39684
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: comedi: do_insn_ioctl() ve do_insnlist_ioctl() fonksiyonlarındaki başlatılmamış bellek kullanımı düzeltildi syzbot, `do_insn_ioctl()` içerisinde bir KMSAN kernel-infoleak raporlamıştır. `insn->n` örneği (her biri bir `unsigned int`) tutmak için bir kernel tampon belleği tahsis edilir. Bazı komut türleri için, bir hata kodu döndürülmediği sürece `insn->n` örneği kullanıcı alanına geri kopyalanır. Sorun, kullanıcı alanına veri döndürmesi gereken tüm komut işleyicilerinin `insn->n` örneklerinin tamamını doldurmamasıdır, bu da bir bilgi sızıntısına yol açmaktadır. `do_insnlist_ioctl()` için de benzer bir syzbot raporu bulunmaktadır, ancak yazım anında bunun için bir yeniden üretici mevcut değildir. Hatalardan biri, belirli bir komut işleyicisine sahip olmayan ancak bir `INSN_BITS` işleyicisine sahip olan alt cihazlar için `INSN_READ` veya `INSN_WRITE` komutlarının işleyicisi olarak kullanılan `insn_rw_emulate_bits()` fonksiyonudur. `INSN_READ` için en fazla 1 örnek doldurulur; dolayısıyla eğer `insn->n` 1'den büyükse, kullanıcı alanına kopyalanan kalan `insn->n - 1` örnek başlatılmamış kernel verileri olacaktır. Diğer bir hata ise "vm80xx" sürücüsündeki `vm80xx_ai_insn_read()` fonksiyonundadır. Bu fonksiyon, tampon belleği doldurmada başarısız olsa bile hiçbir zaman hata döndürmez. Her komutu işlemeden önce tahsis edilen tampon belleğin başlatılmamış bölümlerinin sıfırlandığından emin olunarak `do_insn_ioctl()` ve `do_insnlist_ioctl()` içerisindeki sorun giderilmiştir. `do_insn_ioctl()` için sağladıkları çözümle Arnaud Lecomte'ye teşekkürler. Söz konusu çözüm `kmalloc_array()` çağrısını `kcalloc()` ile değiştirmişti, ancak tüm tampon belleği temizlemek her zaman gerekli değildir.
Nasıl düzeltilir
- linux linux_kernel5.15.190, 6.1.149, 6.6.103, 6.12.44, 6.16.4 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 2.6.29 ≤ v < 5.15.190, 5.16 ≤ v < 6.1.149, 6.2 ≤ v < 6.6.103, 6.7 ≤ v < 6.12.44, 6.13 ≤ v < 6.16.4, 6.17 | 5.15.190, 6.1.149, 6.6.103, 6.12.44, 6.16.4 |
| debian debian_linux | 11.0 | — |
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.