CVE-2025-38248

Yüksek

Açıklama

Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: bridge: mcast: yönlendirici port yapılandırması sırasında serbest bırakıldıktan sonra kullanım (use-after-free) hatasının düzeltilmesi Bridge, arkasında bir multicast yönlendiricinin bulunduğu portların küresel bir listesini tutar. Bu liste, iletme işlemi sırasında, portlar eşleşen MDB girdisinin üyesi olmasa bile multicast paketlerinin bu portlara iletilmesini sağlamak için kontrol edilir. Per-VLAN multicast snooping etkinleştirildiğinde, her port üzerindeki per-port multicast bağlamı devre dışı bırakılır ve port küresel yönlendirici port listesinden kaldırılır: # ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 1 # ip link add name dummy1 up master br1 type dummy # ip link set dev dummy1 type bridge_slave mcast_router 2 $ bridge -d mdb show | grep router router ports on br1: dummy1 # ip link set dev br1 type bridge mcast_vlan_snooping 1 $ bridge -d mdb show | grep router Ancak, per-VLAN multicast snooping etkin olduğunda bile port küresel listeye yeniden eklenebilir: # ip link set dev dummy1 type bridge_slave mcast_router 0 # ip link set dev dummy1 type bridge_slave mcast_router 2 $ bridge -d mdb show | grep router router ports on br1: dummy1 4b30ae9adb04 ("net: bridge: mcast: re-implement br_multicast_{enable, disable}_port functions") commit'inden beri, per-VLAN multicast snooping etkin olduğunda, bir portta multicast özelliğinin devre dışı bırakılması per-port olanı değil, per-{port, VLAN} multicast bağlamlarını devre dışı bırakır. Sonuç olarak, bir port silindikten sonra bile küresel yönlendirici port listesinde kalmaya devam eder. Bu durum, liste üzerinde geziniyken (örneğin listeye yeni bir port eklerken) bir serbest bırakıldıktan sonra kullanım (use-after-free) [1] hatasına yol açar: # ip link del dev dummy1 # ip link add name dummy2 up master br1 type dummy # ip link set dev dummy2 type bridge_slave mcast_router 2 Benzer şekilde, per-VLAN yönlendirici port listesinde de güncelliğini yitirmiş girdiler bulunabilir. Per-VLAN multicast snooping devre dışı bırakıldığında, her portta per-{port, VLAN} bağlamları devre dışı bırakılır ve port per-VLAN yönlendirici port listesinden kaldırılır: # ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 1 mcast_vlan_snooping 1 # ip link add name dummy1 up master br1 type dummy # bridge vlan add vid 2 dev dummy1 # bridge vlan global set vid 2 dev br1 mcast_snooping 1 # bridge vlan set vid 2 dev dummy1 mcast_router 2 $ bridge vlan global show dev br1 vid 2 | grep router router ports: dummy1 # ip link set dev br1 type bridge mcast_vlan_snooping 0 $ bridge vlan global show dev br1 vid 2 | grep router Ancak, per-VLAN multicast snooping devre dışı olduğunda bile port per-VLAN listesine yeniden eklenebilir: # bridge vlan set vid 2 dev dummy1 mcast_router 0 # bridge vlan set vid 2 dev dummy1 mcast_router 2 $ bridge vlan global show dev br1 vid 2 | grep router router ports: dummy1 VLAN porttan silindiğinde, VLAN üzerinde multicast snooping etkin olmadığı için per-{port, VLAN} multicast bağlamı devre dışı bırakılmaz. Sonuç olarak, port artık VLAN üyesi olmasa bile per-VLAN yönlendirici port listesinde kalır. Bu durum, liste üzerinde geziniyken (örneğin listeye yeni bir port eklerken) bir serbest bırakıldıktan sonra kullanım (use-after-free) [2] hatasına yol açar: # ip link add name dummy2 up master br1 type dummy # bridge vlan add vid 2 dev dummy2 # bridge vlan del vid 2 dev dummy1 # bridge vlan set vid 2 dev dummy2 mcast_router 2 Bu sorunlar, br_multicast_port_ctx_deinit() fonksiyonunda portun ilgili (küresel veya per-VLAN) yönlendirici port listesinden kaldırılarak çözülmüştür. Fonksiyon; port silme işlemi sırasında per-port multicast bağlamıyla ve VLAN silme işlemi sırasında per-{port, VLAN} multicast bağlamıyla çağrılmaktadır. Multicast yönlendirici zamanlayıcısını silmenin yeterli olmadığı, çünkü bunun yalnızca geçici multicast yönlendirici durumlarını (1 veya 3) kapsadığı, kalıcı durumu (2) kapsamadığı unutulmamalıdır. [1] BUG: KASAN: slab-out-of-bounds in br_multicast_add_router.part.0+0x3f1/0x560 Write of size 8 at addr ffff888004a67328 by task ip/384 [...] Call Trace: <TASK> dump_stack ---truncated---

ÖnemYüksek
CVSS7.8
İstismar olasılığı23. yüzdelik%0,3
ÜrünLinux Kernel
Yayın9 Tem 2025
İlk görülme9 Tem 2025

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.15.5 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.15 ≤ v < 6.15.5, 6.166.15.5

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.