CVE-2022-48651
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ipvlan: Təyin edilməmiş skb->mac_header səbəbi ilə yaranan sərhəd kənarında (out-of-bound) xətalar düzəldildi Əgər paketləri ipvlan vasitəsilə göndərmək üçün AF_PACKET soketi istifadə edilirsə və AF_PACKET soketinin standart xmit funksiyası PACKET_QDISC_BYPASS seçimi ilə setsockopt() vasitəsilə dev_queue_xmit()-dən packet_direct_xmit()-ə dəyişdirilərsə, skb->mac_header sıfırlanmaya bilər və ilkin 65535 dəyəri ilə qala bilər. Bu, aşağıdakı kimi slab-out-of-bounds xətalarını tetikləyə bilər: ================================================================= UG: KASAN: slab-out-of-bounds in ipvlan_xmit_mode_l2+0xdb/0x330 [ipvlan] PU: 2 PID: 1768 Comm: raw_send Kdump: loaded Not tainted 6.0.0-rc4+ #6 ardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1.fc33 all Trace: print_address_description.constprop.0+0x1d/0x160 print_report.cold+0x4f/0x112 kasan_report+0xa3/0x130 ipvlan_xmit_mode_l2+0xdb/0x330 [ipvlan] ipvlan_start_xmit+0x29/0xa0 [ipvlan] __dev_direct_xmit+0x2e2/0x380 packet_direct_xmit+0x22/0x60 packet_snd+0x7c9/0xc40 sock_sendmsg+0x9a/0xa0 __sys_sendto+0x18a/0x230 __x64_sys_sendto+0x74/0x90 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd Kök səbəb budur: 1. packet_snd() yalnız sock->type SOCK_RAW olduqda və packet_parse_headers()-də olduğu kimi skb->protocol təyin edilmədikdə skb->mac_header-i sıfırlayır. 2. packet_direct_xmit(), dev_queue_xmit() kimi skb->mac_header-i sıfırlamır. Bu halda, ipvlan_xmit_mode_l2() çağırıldıqda skb->mac_header 65535 olur. Beləliklə, ipvlan_xmit_mode_l2() "skb->head + skb->mac_header" ifadəsini istifadə edən eth_hdr() ilə MAC başlığını əldə etdikdə, sərhəd kənarında giriş (out-of-bound access) baş verir. Bu yamama (patch), həmin sərhəd kənarında xətanı həll etmək üçün ipvlan_xmit_mode_l2()-də eth_hdr()-i skb_eth_hdr() ilə əvəz edir və multicast-də MAC başlığını sıfırlayır.
Necə düzəltmək olar
- linux linux_kernel4.9.330, 4.14.295, 4.19.260, 5.4.215, 5.10.146, 5.15.71, 5.19.12 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 3.19 ≤ v < 4.9.330, 4.10 ≤ v < 4.14.295, 4.15 ≤ v < 4.19.260, 4.20 ≤ v < 5.4.215, 5.5 ≤ v < 5.10.146, 5.11 ≤ v < 5.15.71, 5.16 ≤ v < 5.19.12, 6.0 | 4.9.330, 4.14.295, 4.19.260, 5.4.215, 5.10.146, 5.15.71, 5.19.12 |
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.