CVE-2025-39684
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: comedi: do_insn_ioctl() və do_insnlist_ioctl() funksiyalarında başladılmamış yaddaşın istifadəsi düzəldildi syzbot `do_insn_ioctl()` funksiyasında KMSAN kernel-infoleak (nüvə məlumat sızması) hesabatı vermişdir. `insn->n` sayda nümunələri (hər biri `unsigned int`) saxlamaq üçün nüvə buferi ayrılır. Bəzi təlimat növləri üçün, xəta kodu qaytarılmadığı halda, `insn->n` nümunələri istifadəçi sahəsinə geri kopyalanır. Problem ondadır ki, istifadəçi sahəsinə məlumat qaytarmalı olan bütün təlimat idarəediciləri `insn->n` nümunələrinin hamısını doldurmur, buna görə də məlumat sızması baş verir. `do_insnlist_ioctl()` üçün oxşar syzbot hesabatı var, lakin yazıldığı zaman bunun üçün təkrar istehsalçı (reproducer) mövcud deyildi. Səbəblərdən biri, həmin təlimat üçün xüsusi idarəedicisi olmayan, lakin `INSN_BITS` idarəedicisi olan alt cihazlar üçün `INSN_READ` və ya `INSN_WRITE` təlimatlarının idarəedicisi kimi istifadə olunan `insn_rw_emulate_bits()` funksiyasıdır. `INSN_READ` üçün o, maksimum 1 nümunəni doldurur, beləliklə, əgər `insn->n` 1-dən böyükdürsə, istifadəçi sahəsinə kopyalanan qalan `insn->n - 1` nümunə başladılmamış nüvə məlumatları olacaqdır. Digər bir səbəb "vm80xx" drayverindəki `vm80xx_ai_insn_read()` funksiyasıdır. Bu funksiya buferi doldura bilmədiyi halda belə heç vaxt xəta qaytarmır. Hər bir təlimatı emal etməzdən əvvəl ayrılmış buferin başladılmamış hissələrinin sıfırlandığından əmin olmaqla, bu problem `do_insn_ioctl()` və `do_insnlist_ioctl()` funksiyalarında düzəldilmişdir. `do_insn_ioctl()` üçün təklif etdiyi düzəlişə görə Arnaud Lecomte-yə təşəkkürlər. Həmin düzəliş `kmalloc_array()` çağırışını `kcalloc()` ilə əvəz etmişdi, lakin bütün buferi təmizləmək hər zaman zəruri deyil.
Necə düzəltmək olar
- linux linux_kernel5.15.190, 6.1.149, 6.6.103, 6.12.44, 6.16.4 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 | — |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.