CVE-2022-48910
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net: ipv6: ipv6_mc_down() fonksiyonunun en fazla bir kez çağrıldığından emin olun addrconf_notify() fonksiyonunun NETDEV_DOWN ile çağrılmasının iki nedeni vardır: ya ağ aygıtı gerçekten kapanıyordur ya da arayüz üzerinde IPv6 devre dışı bırakılmıştır. Bunlardan biri kapalıyken diğeri değiştirilirse, arada ilgili ipv6_mc_up() fonksiyonunu hiç çağırmadan, ipv6_mc_down() dahil olmak üzere NETDEV_DOWN için olan kodu tekrar tekrar çağırırız. Bu durum, arayüzün abone olduğu her çoklu yayın grubu için idev->mc_tomb içinde yeni bir giriş tahsis edilmesine neden olur ve sonuç olarak arayüzün abone olduğu her anlamlı çoklu yayın grubu başına bir struct ifmcaddr6 sızıntısına yol açar. Aşağıdaki yeniden üretici, en az $n nesne sızdıracaktır: ip addr add ff2e::4242/32 dev eth0 autojoin sysctl -w net.ipv6.conf.eth0.disable_ipv6=1 for i in $(seq 1 $n); do ip link set up eth0; ip link set down eth0 done IPV6_ADD_MEMBERSHIP (ayrıcalıksız) ile gruplara katılmak veya sysctl net.ipv6.conf.eth0.forwarding değerini 1 yapmak (=> ff02::2 adresine abone olmak), anlamlı bir idev->mc_list oluşturmak için kullanılabilir ve doğru yukarı-aşağı dizisiyle nesne sızıntısı yaratır. NETDEV_DOWN olaylarının her iki kaynağına dayanarak, arayüz IPv6 durumu şu şekilde değerlendirilmelidir: - Ağ arayüzü hazır değilse VEYA arayüz için IPv6 devre dışıysa: hazır değil - Ağ arayüzü hazırsa VE arayüz için IPv6 etkinse: hazır ipv6_mc_up() ve ipv6_down() fonksiyonları yalnızca bu durum değiştiğinde çalıştırılmalıdır. Bu, IPv6 durumunun ne zaman hazır olduğunu hatırlayarak ve ipv6_mc_down() fonksiyonunu yalnızca durum gerçekten hazırdan hazır değil durumuna geçtiğinde çalıştırarak uygulanmıştır. Diğer yön (hazır değil -> hazır) zaten doğru çalışmaktadır çünkü: - NETDEV_UP / NETDEV_CHANGE için tetiklenen arayüz bildirimi kod yolu, IPv6 devre dışıysa erken döner ve - disable_ipv6=0 tarafından tetiklenen kod yolu, addrconf_link_ready(dev) false döndürdüğü sürece arayüzün tam olarak başlatılmasını atlar - ipv6_mc_up() fonksiyonunun tekrar tekrar çağrılması herhangi bir sızıntıya neden olmaz
Nasıl düzeltilir
- linux linux_kernel4.9.313, 4.14.278, 5.4.193, 5.10.104, 5.15.27, 5.16.13 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 3.18 ≤ v < 4.9.313, 4.10 ≤ v < 4.14.278, 4.15 ≤ v < 5.4.193, 5.5 ≤ v < 5.10.104, 5.11 ≤ v < 5.15.27, 5.16 ≤ v < 5.16.13, 5.17 | 4.9.313, 4.14.278, 5.4.193, 5.10.104, 5.15.27, 5.16.13 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.