CVE-2026-93221

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: nfsd: nfsd_net boolean bayraqlarını unsigned long bayraq sözünə çevirmək nfsd_net strukturu, seriyallaşdırma olmadan paralel kontekstlərdən daxil olunan bir neçə boolean sahəsi ehtiva edir. Xüsusilə, nfsd4_end_grace() funksiyası öz boşaltma yolunu adi bool ilə qoruyur: if (nn->grace_ended) return; nn->grace_ended = true; Oxuma və yazma əməliyyatları müstəqildir və struct nfsd_net daxilində onları seriyallaşdıran heç nə yoxdur. Heç bir kilid saxlanılmadan ən azı iki kontekst bu koda çata bilər: laundromat yolu laundry_wq kworker nfs4_laundromat() nfsd4_end_grace() RECLAIM_COMPLETE yolu nfsd compound kthread nfsd4_reclaim_complete() inc_reclaim_complete() nfsd4_end_grace() Hər iki çağırıcı fərqli CPU-larda grace_ended == false vəziyyətini müşahidə edə bilər, hər ikisi true dəyərini təyin edər və hər ikisi aktiv client_tracking_ops->grace_done geri çağırma funksiyasını işə salan nfsd4_record_grace_done() funksiyasına keçid edər. reclaim_str_hashtbl-i boşaldan izləmə əməliyyatları üçün (nfsd4_recdir_purge_old vasitəsilə legacy_tracking_ops və nfsd4_cld_grace_done vasitəsilə cld v1+ əməliyyatları), grace_done funksiyası nfs4_release_reclaim()-i çağırır; bu isə heç bir kilid olmadan reclaim_str_hashtbl-in hər bir səbətini gəzir və hər bir element üzərində nfs4_remove_reclaim_record() (list_del + kfree) funksiyasını çağırır. İki paralel gəzinti siyahını korlayır və hər bir nfs4_client_reclaim elementi üçün double-free (ikiqat azad etmə) baş verir. Eyni səbəti iterasiya edən paralel nfsd4_find_reclaim_client() funksiyası isə azad edilmiş yaddaşı oxuyur. Üçüncü çağırıq nöqtəsi skip_grace startap yolunda nfs4_state_start_net() funksiyasında mövcuddur, lakin o, hər hansı bir klient qoşulmamışdan və laundromat-ın ilk gecikdirilmiş işi başlamamışdan əvvəl nfsd_mutex altında işləyir, buna görə də yuxarıdakı iki çağırıcı ilə yarışa girə bilməz. nfsd_net strukturundakı dağınıq boolean sahələri tək bir unsigned long bayraq sözü və bit mövqeləri üçün enum nfsd_net_flag ilə əvəzləndi. grace_ended yarışı bütün arxitekturalarda atomik olan test_and_set_bit() istifadə edilərək həll edildi. Digər bayraqlar (grace_end_forced, in_grace, somebody_reclaimed, track_reclaim_completes, nfsd_net_up, lockd_up) ardıcıllığı təmin etmək üçün test_bit/set_bit/clear_bit istifadəsinə çevrildi. Bu, yalnız söz ölçülü atomik əməliyyatları dəstəkləyən Hexagon kimi arxitekturalarda sub-word cmpxchg problemlərinin qarşısını alır.

CiddilikYüksək
CVSS8.1
İstismar ehtimalı—
MəhsulMicrosoft Azl3 Kernel
Dərc24 sen 2026
İlk görülmə24 sen 2026

Necə düzəltmək olar

Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
microsoft azl3_kernel_6.6.157.1-1Aralıq göstərilməyib—
microsoft azl3_kernel_6.6.159.1-1Aralıq göstərilməyib—

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.

Intelligence 360 paketində

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.