CVE-2024-27415

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: netfilter: bridge: multikast paketlərini stekə ötürməzdən əvvəl təsdiqləmək conntrack nf_confirm məntiqi eyni nf_conn girişinə istinad edən klonlanmış skb-ləri idarə edə bilmir ki, bu da körpülərdəki (bridges) multikast (broadcast) freymləri üçün baş verir. Nümunə: macvlan0 | br0 / \ ethX ethY ethX (və ya Y) IP paketi ehtiva edən L2 multikast və ya broadcast paketini qəbul edir, axın hələ conntrack cədvəlində deyil. 1. skb körpüdən və fake-ip (br_netfilter) Prerouting-dən keçir. -> skb->_nfct indi təsdiqlənməmiş girişe istinad edir 2. skb broad/mcast paketidir. Körpü indi klonları hər bir körpü interfeysindən kənara ötürür. 3. skb stekə yuxarıya ötürülür. 4. macvlan halında, macvlan drayveri mcast skb-nin klonunu (klonlarını) saxlayır və onları aşağı cihazlara göndərmək üçün iş növbəsini (work queue) planlaşdırır. Klon skb->_nfct surət deyil, orijinal skb ilə eyni girişdir. Sonra macvlan rx handler RX_HANDLER_PASS qaytarır. 5. Normal conntrack hook-ları (NF_INET_LOCAL_IN-də) orijinal skb-ni təsdiqləyir. Macvlan broadcast worker və normal təsdiq yolu arasında yarış (race condition) yaranacaq. Əgər 2-ci addım artıq klonu təsdiqləyibsə, bu yarış baş verməyəcək. Bu halda sonrakı addımlar skb->_nfct artıq təsdiqlənmiş (heş cədvəlində) halda skb_clone() yerinə yetirir. Bu, düzgün işləyir. Lakin eb/ip/nftables qaydaları paketləri postrouting-də nf_confirm addımına çatmamış atdıqda belə bir təsdiq baş verməyəcək. Pablo qeyd edir ki, nf_conntrack_bridge stateful NAT istifadəsinə icazə vermir, buna görə də biz təhlükəsiz şəkildə nf_conn girişini ata və inet-in yenidən conntrack çağırmasına icazə verə bilərik. Bu, bridge netfilter üçün işləmir: skb NAT transformasiyasına malik ola bilər. Həmçinin bridge nf, 'sabotage_in' hook vasitəsilə inet prerouting-in yenidən çağırılmasının qarşısını alır. Bu problemin həlli kimi, yuxarı təbəqə təsdiqlənməmiş girişi klonlamağa fürsət tapmamışdan əvvəl, LOCAL_IN zamanı girişin açıq şəkildə təsdiqlənməsi tətbiq edilmişdir. Bunun mənfi tərəfi odur ki, bu, NAT və conntrack helper-larını deaktiv edir. Alternativ həll yolu təsdiqlənməmiş paketlərlə işləyən bütün kod hissələrinə kilidləmə (locking) əlavə etmək olardı, lakin bu ağlabatan şəkildə edilsə belə, digər problemlər yaradır, məsələn: -m physdev --physdev-out eth0 -j SNAT --snat-to 1.2.3.4 -m physdev --physdev-out eth1 -j SNAT --snat-to 1.2.3.5 Multikast halı üçün belə ziddiyyətli xəritələmələrdən yalnız biri yaradılacaq, çünki conntrack yalnız 1:1 NAT xəritələmələrini dəstəkləyir. İstifadəçilər bundan qaçmaq üçün belə trafiki açıq şəkildə NOTRACK (conntrack bypass) kimi qeyd edən konfiqurasiya qurmalıdırlar, lakin biz onları avtomatik bypass edə bilmərik, çünki qaydalar toplusunda izlənilməyən trafik üçün artıq accept qaydaları ola bilər və bu, istifadəçi tərəfindən görünən davranışın dəyişməsinə səbəb olar.

CiddilikYüksək
CVSS8.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc17 may 2024
İlk görülmə17 may 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.15.151, 6.1.81, 6.6.21, 6.7.9 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel2.6.13 ≤ v < 5.15.151, 5.16 ≤ v < 6.1.81, 6.2 ≤ v < 6.6.21, 6.7 ≤ v < 6.7.9, 2.6.12, 6.85.15.151, 6.1.81, 6.6.21, 6.7.9

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-2024-27415 · Linux Kernel · Dark Radar