CVE-2026-89715
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: NFS/localio: nfs_uuid_add_file uğursuz olduqda istinad sızmasının (ref leak) düzəldilməsi nfs_uuid_add_file() funksiyası uuid->net strukturunu ləğv edən nfs_uuid_put() ilə yarışdıqda (race), rcu_assign_pointer() vasitəsilə nfl->nfs_uuid-ni dərc etmədən -ENXIO qaytarır. Daha sonra nfs_open_local_fh() xəta budağına daxil olur və yalnız slotun fayl istinadını, onunla cütləşmiş şəbəkə (net) istinadını və öz giriş zamanı şəbəkə istinadını azad edir, halbuki bağlanma yolu heç bir əməliyyat yerinə yetirmir (no-op): nfs_close_local_fh() nfs_uuid = rcu_dereference(nfl->nfs_uuid); if (!nfs_uuid) { rcu_read_unlock(); return; } /* həmişə */ nfsd_open_local_fh() çağırana məxsus +1 nfsd_file istinadı (nfsd_file_acquire_local()-dən sonra nfsd_file_get()-dən gələn) və nf->nf_net kimi yerləşdirilmiş giriş zamanı nfsd_net istinadı (ilk nfsd_net_try_get()-dən gələn) saxlayan localio qaytarır. Hər iki istinad xəta yolunda sızır, bu da hər hadisə üçün bir nfsd_file (və altındakı struct file, dentry, inode) və bir nfsd_net_ref-i bloklayaraq nfsd_net və netns ləğvinin qarşısını alır. Problem, mövcud köməkçi funksiya vasitəsilə çağırana məxsus fayl istinadının və onun şəbəkə istinadının azad edilməsi, köməkçi funksiyanın onu xchg edə bilməsi üçün stek-lokal RCU göstəricisinin istifadəsi və çağıranın slotu təmizlənmiş localio-nu dereference etməməsi üçün -ENXIO qaytarılması ilə düzəldilmişdir: struct nfsd_file __rcu *tmp = RCU_INITIALIZER(localio); nfs_to_nfsd_file_put_local(pnf); nfs_to_nfsd_file_put_local(&tmp); localio = ERR_PTR(-ENXIO); Sondakı nfs_to_nfsd_net_put(net) xarici şəbəkə istinadını azad etməyə davam edir, beləliklə xəta budağında hər üç nfsd_net_try_get() artımı balanslaşdırılır.
Necə düzəltmək olar
- Linux Linux5215e734bf7cba18237155f8cb2a0accb60ca339, 9f59b05423ed381f8cdeaaae4bd6778adcb6865c, ca018c19e0ba38975e5ddc3ef8117d5b734313aa, 6.16, 6.17 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | fdd015de767977f21892329af5e12276eb80375f ≤ v < 5215e734bf7cba18237155f8cb2a0accb60ca339, fdd015de767977f21892329af5e12276eb80375f ≤ v < 9f59b05423ed381f8cdeaaae4bd6778adcb6865c, fdd015de767977f21892329af5e12276eb80375f ≤ v < ca018c19e0ba38975e5ddc3ef8117d5b734313aa, 55735dc5a0ee0c0fc14cb51e005eae862906a410, 7cac8a129fc53497f9ee5d66fca55a245d009b97, 6.15.10 ≤ v < 6.16, 6.16.1 ≤ v < 6.17, 6.17 | 5215e734bf7cba18237155f8cb2a0accb60ca339, 9f59b05423ed381f8cdeaaae4bd6778adcb6865c, ca018c19e0ba38975e5ddc3ef8117d5b734313aa, 6.16, 6.17 |
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.