CVE-2026-64459

Kritik

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.

CiddilikKritik
CVSS9.8
İstismar ehtimalı—
MəhsulLinux
Dərc25 iyl 2026
İlk görülmə25 iyl 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linux657646c08c94ef7b9dbe468fe7828032216f9841, 4caf12c778fed3dc3824cf36263be5e2c491fbd0, 8bc4d43bccbd60efe85d0a44d5bf41762f2f0c30 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux51e547e8c89c661f6fbede4a28b1d33b13625683 ≤ v < 657646c08c94ef7b9dbe468fe7828032216f9841, 51e547e8c89c661f6fbede4a28b1d33b13625683 ≤ v < 4caf12c778fed3dc3824cf36263be5e2c491fbd0, 51e547e8c89c661f6fbede4a28b1d33b13625683 ≤ v < 8bc4d43bccbd60efe85d0a44d5bf41762f2f0c30, 6.18657646c08c94ef7b9dbe468fe7828032216f9841, 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.

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.

CVE-2026-64459 · Linux · Dark Radar