CVE-2022-48980

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net: dsa: sja1105: sja1105_init_l2_policing() fonksiyonundaki sınır dışı erişim önlendi SJA1105 ailesi 45 L2 policing tablo girdisine (SJA1105_MAX_L2_POLICING_COUNT), SJA1110 ise 110 girdiye (SJA1110_MAX_L2_POLICING_COUNT) sahiptir. Tablo yapısını koruyup port sayısı farkını (SJA1105'te 5'e karşı SJA1110'da 10) hesaba katmak, aradaki farkı tam olarak açıklamamaktadır. Aksine, SJA1110 ayrıca çoklu yayın (multicast) trafiği için L2 giriş poliserlerine de sahiptir. Bir paket multicast olarak sınıflandırılırsa, 99 + SRCPORT indeksli poliser tarafından işlenir. sja1105_init_l2_policing() fonksiyonu, varsayılan olarak normal paket alımına müdahale etmeyecek şekilde tüm L2 poliserlerini başlatır. SJA1105 ve SJA1110 arasında ortak bir kod sağlamak amacıyla, port için multicast poliser indeksi hesaplanır; çünkü bu indeks SJA1105 için sınır dışıdır ancak SJA1110 için sınırlar dahilindedir ve bir sınır kontrolü gerçekleştirilir. Kod, SJA1105 (ds->num_ports = 5) üzerinde port 0'ın multicast poliseri ile ne yapılacağını belirlerken hatalı işlem yapmaktadır. "mcast" indeksi 45'e eşit olacaktır, bu değer aynı zamanda table->ops->max_entry_count (SJA1105_MAX_L2_POLICING_COUNT) değerine eşittir. Bu nedenle kontrolden geçer. Ancak aynı zamanda SJA1105'in multicast poliserleri yoktur. Dolayısıyla kod, statik yapılandırmanın L2 Policing tablosunda sınır dışı bir öğenin SHARINDX alanını programlar. İndeks 45 ile 45 girdi arasındaki karşılaştırma, belleği tahsis edilmediği için kodun SJA1105 üzerinde bu poliser indeksine erişmemesi gerektiğini belirlemeliydi. Yeterince şanssız olunduğunda, sınır dışı yazma işlemi diğer geçerli kernel verilerinin üzerine bile yazabilir, ancak bu durumda sorun KASAN kullanılarak tespit edilmiştir. Kernel günlüğü: sja1105 spi5.0: Probed switch chip: SJA1105Q ================================================================== BUG: KASAN: slab-out-of-bounds in sja1105_setup+0x1cbc/0x2340 Write of size 8 at addr ffffff880bd57708 by task kworker/u8:0/8 ... Workqueue: events_unbound deferred_probe_work_func Call trace: ... sja1105_setup+0x1cbc/0x2340 dsa_register_switch+0x1284/0x18d0 sja1105_probe+0x748/0x840 ... Allocated by task 8: ... sja1105_setup+0x1bcc/0x2340 dsa_register_switch+0x1284/0x18d0 sja1105_probe+0x748/0x840 ...

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın21 Eki 2024
İlk görülme21 Eki 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.15.83, 6.0.13 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.14 ≤ v < 5.15.83, 5.16 ≤ v < 6.0.13, 6.15.15.83, 6.0.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.

Intelligence 360 paketinde

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.