CVE-2026-64459
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: tcp: tcp_ao_destroy_sock funksiyasında RCU lütf dövrünün bərpası 51e547e8c89c nömrəli commit ("tcp: Free TCP-AO/TCP-MD5 info/keys without RCU"), "info/keys-lərin məhv edilməsi soket destruktoruya qədər təxirə salınır" və buna görə də "artıq heç kim onu tapa bilməz" arqumentini gətirərək tcp_ao_destroy_sock() funksiyasından call_rcu() geri çağırışını silmişdir. Bu arqument tcp_connect() (net/ipv4/tcp_output.c:4327-4332) daxilindəki çağırış nöqtəsi üçün keçərli deyil. Həmin anda soket TCP_SYN_SENT vəziyyətindədir, artıq tcp_v4_connect() daxilindəki inet_hash_connect() tərəfindən inet ehash-ə əlavə edilmişdir və buna görə də tamamilə tapıla biləndir: başqa bir CPU-da tcp_v4_rcv() işlədən hər hansı bir softirq, məhv edən CPU-da bh_lock_sock_nested() götürülməzdən əvvəl soketi ehash-dən çıxara, tcp_inbound_hash() funksiyasına daxil ola və implicit RCU vasitəsilə tp->ao_info-nu yükləyə bilər. Oxuyucu yol daha sonra rcu_dereference_check() vasitəsilə tp->ao_info-nu yenidən yükləyən __tcp_ao_do_lookup() (net/ipv4/tcp_ao.c:208) funksiyasına daxil olur; tcp_ao_destroy_sock() funksiyasında rcu_assign_pointer(tp->ao_info, NULL) və tcp_ao_info_free() arasında synchronize_rcu() olmadığı üçün yenidən yükləmə prosesi hələ də (azad edilməli olan) göstəricini müşahidə edə bilər. Tutulan göstərici daha sonra 223-cü sətirdə emal edilir: hlist_for_each_entry_rcu(key, &ao->head, node, ...) Yazıcının sinxron kfree() funksiyası 218-ci sətirdəki yenidən gətirmə ilə 223-cü sətirdəki hlist iterasiyası arasında tamamlana bilər. Slab yenidən istifadə olunur (və ya hələ istifadə edilməyibsə, sadəcə LIST_POISON1 ilə nişanlanır) və iterasiya softirq kontekstində hücumçunun idarə etdiyi və ya zəhərlənmiş yaddaşa müraciət edir. Reproduser (debug shim olmadan, standart x86_64 v7.1-rc2 SMP+KASAN, QEMU+KVM): CLONE_NEWUSER|CLONE_NEWNET daxilində imtiyazsız uid=1000 prosesi TCP soketində TCP_MD5SIG + TCP_AO_ADD_KEY quraşdırır, raw soketlər vasitəsilə öz son 4-lüsinə doğru saxtalaşdırılmış TCP-AO seqmentləri göndərir, sonra connect() funksiyasını çağırır. tcp_connect() daxilindəki md5-wins uzlaşması tcp_ao_destroy_sock() funksiyasını tetikləyir; loopback NAPI yolu üzərindəki softirq backlog oxuyucusu azad edilmiş ao->head.first gəzintisi zamanı çökür: Oops: general protection fault, probably for non-canonical address 0xfbd59c000000002f KASAN: maybe wild-memory-access in range [0xdead000000000178-0xdead00000000017f] CPU: 0 UID: 1000 PID: 100 Comm: repro_userns RIP: 0010:__tcp_ao_do_lookup+0x107/0x1c0 Call Trace: <IRQ> __tcp_ao_do_lookup+0x107/0x1c0 tcp_ao_inbound_lookup.constprop.0+0x12a/0x200 tcp_inbound_ao_hash+0x5ea/0x1520 tcp_inbound_hash+0x7ce/0x1240 tcp_v4_rcv+0x1e7a/0x3e10 ... RCU lütf dövrü bərpa edilir: struct rcu_head tcp_ao_info strukturuna yenidən əlavə edilir və sinxron tcp_ao_info_free() funksiyası call_rcu() geri çağırışı ilə əvəz edilir. rcu_assign_pointer onu NULL etməzdən əvvəl tp->ao_info-nu tutmuş oxuyucular indi obyektin rcu_read_unlock()-a qədər etibarlı qaldığını görürlər. Yamaq tətbiq edildikdən sonra reproduser eyni nüvə versiyasında 2000 iterasiya boyunca problemsiz işləyir.
Necə düzəltmək olar
- Linux Linux657646c08c94ef7b9dbe468fe7828032216f9841, 4caf12c778fed3dc3824cf36263be5e2c491fbd0, 8bc4d43bccbd60efe85d0a44d5bf41762f2f0c30 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 51e547e8c89c661f6fbede4a28b1d33b13625683 ≤ v < 657646c08c94ef7b9dbe468fe7828032216f9841, 51e547e8c89c661f6fbede4a28b1d33b13625683 ≤ v < 4caf12c778fed3dc3824cf36263be5e2c491fbd0, 51e547e8c89c661f6fbede4a28b1d33b13625683 ≤ v < 8bc4d43bccbd60efe85d0a44d5bf41762f2f0c30, 6.18 | 657646c08c94ef7b9dbe468fe7828032216f9841, 4caf12c778fed3dc3824cf36263be5e2c491fbd0, 8bc4d43bccbd60efe85d0a44d5bf41762f2f0c30 |
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.