CVE-2026-89547
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: SUNRPC: svc hovuzunun percpu sayğacının ayrılmasını yoxlayın __svc_create() funksiyası üç hovuz başına percpu_counter statistikasını başladır və bütün geri dönüş dəyərlərini görməzdən gəlir. SMP sistemlərində, __alloc_percpu_gfp() ayrılmanı təmin edə bilmədikdə percpu_counter_init() uğursuz olur və uğursuz sayğacı fbc->counters == NULL şərtində saxlayır, onun daxilindəki raw_spinlock_t, list_head və count heç vaxt başladılmır. Buna baxmayaraq, __svc_create() yarımçıq qurulmuş svc_serv obyektini nfsd, lockd və ya NFS callback xidmətinə qaytarır. Həmin xidmət aktivləşdikdən sonra, svc_xprt_enqueue(), svc_handle_xprt() və svc_pool_wake_idle_thread() funksiyalarındakı kritik yol artımları, dayaq göstəricisi NULL olan sayğaca çatır. Göstərici per-cpu ofset olduğu üçün giriş xəta vermir: o, cari CPU-nun per-cpu sahəsinin sıfır ofsetinə yönəlir və orada yerləşən hər hansı dəyişəni səssizcə korlayır. /proc/fs/nfsd/pool_stats oxuması eyni NULL per-cpu yaddaşına müraciət edir və mənasız məlumatlar qaytarır, CONFIG_DEBUG_SPINLOCK və ya lockdep aktiv olduqda isə heç vaxt başladılmamış kilid üzərində xəta verir. Sıradan çıxmış xidmətin yaradılması RPC serverinin başlatılması zamanı percpu ayrılmasının uğursuzluğunu tələb edir, buna görə də bu vəziyyət yalnız yaddaş təzyiqi və ya xətanın süni stimullaşdırılması (fault injection) zamanı lokal administrator tərəfindən əlçatan ola bilər; uzaqdan qoşulan tərəf təkbaşına bu pis vəziyyəti törədə bilməz. __svc_create() funksiyasındakı hər bir percpu_counter_init() geri dönüş dəyərini yoxlayın və ayrılma uğursuz olduqda, cari hovuzda və ondan əvvəl başladılmış hər bir hovuzda artıq qurulmuş sayğacları ləğv edərək prosesi dayandırın. Sökülmə zamanı hər sayğac üçün ayrıca percpu_counter_destroy() çağırışı hər bir per-cpu ayrılmasını dəqiq bir dəfə azad edir.
Necə düzəltmək olar
- Linux Linux57ac7d899409b0a9b768cf417e3bb86bcca3d4c6, 3a2b7649de76376a69f1d3ed2a539fb15907cd4d, bd1ef2cfb44d72b7aa6943e87b206eb0e30fbd0c, b541a15046976e481618726cc23db0fb22d576db, 43e11e164704dde975c9edb370de1a06bec67270 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | ccf08bed6e7a80519569456edd2ea21b7b1701c6 ≤ v < 57ac7d899409b0a9b768cf417e3bb86bcca3d4c6, ccf08bed6e7a80519569456edd2ea21b7b1701c6 ≤ v < 3a2b7649de76376a69f1d3ed2a539fb15907cd4d, ccf08bed6e7a80519569456edd2ea21b7b1701c6 ≤ v < bd1ef2cfb44d72b7aa6943e87b206eb0e30fbd0c, ccf08bed6e7a80519569456edd2ea21b7b1701c6 ≤ v < b541a15046976e481618726cc23db0fb22d576db, ccf08bed6e7a80519569456edd2ea21b7b1701c6 ≤ v < 43e11e164704dde975c9edb370de1a06bec67270, 6.3 | 57ac7d899409b0a9b768cf417e3bb86bcca3d4c6, 3a2b7649de76376a69f1d3ed2a539fb15907cd4d, bd1ef2cfb44d72b7aa6943e87b206eb0e30fbd0c, b541a15046976e481618726cc23db0fb22d576db, 43e11e164704dde975c9edb370de1a06bec67270 |
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.