CVE-2026-14366
Təsvir
Silicon Labs SiWx917 WiFi drayverinin drivers/wifi/siwx91x/siwx91x_wifi.c faylındakı siwx91x_send() ötürmə geri çağırışı (callback) ona məxsus olmayan şəbəkə paketini azad edir. Zephyr TX yolunda net_pkt L2/şəbəkə stekinə məxsusdur; drayver onu yalnız freym baytlarını lokal net_buf-a kopyalamaq üçün müvəqqəti istifadə edir. Düzəlişdən əvvəl, ötürmədən sonra siwx91x_send() əlavə olaraq çağıran tərəfə məxsus paket üzərində net_pkt_unref(pkt) funksiyasını çağırırdı ki, bu da onun son istinadını silərək paketi vaxtından əvvəl ortaq paket hovuzuna qaytarırdı. Bu kod yolu standart olaraq tərtib edilir (CONFIG_WIFI_SILABS_SIWX91X_NET_STACK_NATIVE). Çağırıcı olan subsys/net/l2/ethernet/ethernet.c faylındakı ethernet_send() funksiyası, drayver geri döndükdən sonra paketi istifadə etməyə davam edir: o, net_pkt_get_len(pkt) dəyərini oxuyur, TX statistikasını yeniləyir və daha sonra öz net_pkt_unref(pkt) əməliyyatını yerinə yetirir. Drayver paketi artıq azad etdiyi üçün bunlar "use-after-free" oxumalarıdır və ardınca ikinci bir unref (double free - ikiqat azad etmə) baş verir. Eyni vaxtda baş verən şəbəkə fəaliyyəti iki unref arasında azad edilmiş slab slotunu təkrar istifadə etdikdə, sondakı unref fərqli, aktiv bir paketin istinad sayını azaldır və onu azad edir, beləliklə həm qəbul, həm də ötürmə yolları tərəfindən istifadə edilən ortaq net_pkt hovuzunu korlayır. Bu qüsur, yerli stekli SiWx917 WiFi interfeysi vasitəsilə adi ötürmə zamanı ortaya çıxır və eyni WiFi şəbəkəsindəki yaxın hücumçu ötürmələri (məsələn, ARP və ya ICMP echo cavabları, yaxud TCP əl sıxma prosesləri) tətikləyərək bu yolu aktivləşdirə bilər. Əsas müşahidə olunan təsir əlçatanlığın itirilməsidir (hovuzun korlanması nəticəsində ötürmənin donması və sistem çökmələri) və yarış vəziyyətindən (race condition) asılı olaraq nüvənin şəbəkə bufer hovuzunun yaddaş korlanmasıdır. Düzəliş siwx91x_send() funksiyasından yanlış net_pkt_unref(pkt) çağırışını silir; drayverin özünün ayırdığı paketi düzgün şəkildə azad edən qəbul yolu unref əməliyyatı isə dəyişdirilməmiş qalır.
Necə düzəltmək olar
- zephyrproject zephyr4.4.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| zephyrproject zephyr | 4.1.0 ≤ v < 4.4.2 | 4.4.2 |
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.