CVE-2022-48814
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net: dsa: seville: mdiobus'ı devres altında kaydet Şu commitlerde açıklandığı üzere: 74b6d7d13307 ("net: dsa: realtek: register the MDIO bus under devres") 5135e96a3dd2 ("net: dsa: don't allocate the slave_mii_bus using devres") mdiobus_free() fonksiyonu; devm_mdiobus_free() <- devres_release_all() <- __device_release_driver() üzerinden çağrıldığında ve söz konusu mdiobus daha önce kaydı silinmemişse panik durumuna yol açacaktır. Seville VSC9959 anahtarı bir platform aygıtıdır, bu nedenle bunun neden olacağını düşündüğüm başlangıç kısıtlamaları (->shutdown sırasında ->remove çağıran I2C veya SPI veri yolları) burada geçerli değildir. Ancak burada geçerli olan başka bir durum mevcuttur. Eğer DSA master'ın kendisi, ->shutdown işleminden ->remove işlemini çağıran bir veri yolu üzerindeyse (fsl-mc veri yolu üzerinde olan dpaa2-eth gibi), anahtar ile DSA master arasında bir aygıt bağlantısı bulunur ve device_links_unbind_consumers() kapatma sırasında seville anahtar sürücüsünün bağlantısını kesecektir. Bu nedenle tüm DSA anahtar sürücülerine aynı yaklaşım uygulanmalıdır: ya hem mdiobus tahsisi hem de kaydı için devres kullanılmalı ya da hiç devres kullanılmamalıdır. seville sürücüsü, hem mdiobus_unregister hem de mdiobus_free çağrılarını karşılayabilecek bir kod yapısına sahiptir ancak mdio-mscc-miim.c dosyasındaki ve kendi adına devm_mdiobus_alloc_size() fonksiyonunu çağıran mscc_miim_setup() fonksiyonuna harici bir bağımlılığı vardır. Bu yapıyı yeniden düzenlemek ve bir sembol daha (mscc_miim_teardown()) dışa aktarmak yerine, devres ile çalışalım ve of_mdiobus_register fonksiyonunu devres varyantıyla değiştirelim. Tamamen devres kullandığımızda, devres'in hala kayıtlı olan bir veri yolunu serbest bırakmadığından emin olabiliriz (ya her iki geri çağırma işlemini yürütür ya da hiçbirini yürütmez).
Nasıl düzeltilir
- linux linux_kernel5.15.27, 5.16.10 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 | 5.9 ≤ v < 5.15.27, 5.16 ≤ v < 5.16.10, 5.17 | 5.15.27, 5.16.10 |
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.