CVE-2025-39703
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net, hsr: skb etiket tutamazsa HSR çerçevesini reddet skb içinde HSR etiketini tutmak için yetersiz alan bulunan bir HSR çerçevesinin alınması, sistem çökmesine (kernel BUG) neden olabilir: [ 45.390915] skbuff: skb_under_panic: text:ffffffff86f32cac len:26 put:14 head:ffff888042418000 data:ffff888042417ff4 tail:0xe end:0x180 dev:bridge_slave_1 [ 45.392559] ------------[ cut here ]------------ [ 45.392912] kernel BUG at net/core/skbuff.c:211! [ 45.393276] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [ 45.393809] CPU: 1 UID: 0 PID: 2496 Comm: reproducer Not tainted 6.15.0 #12 PREEMPT(undef) [ 45.394433] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 45.395273] RIP: 0010:skb_panic+0x15b/0x1d0 <kayıtlar kırpıldı, güvenilmez izler kaldırıldı> [ 45.402911] Call Trace: [ 45.403105] <IRQ> [ 45.404470] skb_push+0xcd/0xf0 [ 45.404726] br_dev_queue_push_xmit+0x7c/0x6c0 [ 45.406513] br_forward_finish+0x128/0x260 [ 45.408483] __br_forward+0x42d/0x590 [ 45.409464] maybe_deliver+0x2eb/0x420 [ 45.409763] br_flood+0x174/0x4a0 [ 45.410030] br_handle_frame_finish+0xc7c/0x1bc0 [ 45.411618] br_handle_frame+0xac3/0x1230 [ 45.413674] __netif_receive_skb_core.constprop.0+0x808/0x3df0 [ 45.422966] __netif_receive_skb_one_core+0xb4/0x1f0 [ 45.424478] __netif_receive_skb+0x22/0x170 [ 45.424806] process_backlog+0x242/0x6d0 [ 45.425116] __napi_poll+0xbb/0x630 [ 45.425394] net_rx_action+0x4d1/0xcc0 [ 45.427613] handle_softirqs+0x1a4/0x580 [ 45.427926] do_softirq+0x74/0x90 [ 45.428196] </IRQ> Bu sorun syzkaller tarafından tespit edilmiştir. Panic durumu, ETH başlığı doğrusal verilere zaten eklenmiş bozuk bir skb aldığında br_dev_queue_push_xmit() fonksiyonunda meydana gelir. skb_push() çağrısı denendiğinde yeterli headroom bulunmadığından skb_push() panic durumuna geçer. Bozuk skb, belirli bir bozuk HSR çerçevesi (eksik TAG içeren) aldığında istenmeyen bir dizi dönüşüm gerçekleştiren HSR katmanı tarafından kuyruğa eklenir. Sorun, hem ethernet hem de hsr başlıklarını içerecek kadar uzun olmayan çerçevelerin düşürülmesi ve tüketilmesiyle düzeltilmiştir. Alternatif çözüm, br_dev_queue_push_xmit() içerisindeki skb_push() işleminden önce yeterli headroom olup olmadığının kontrol edilmesi olacaktır. Yeniden oluşturucu örneğinde bu durum AF_PACKET üzerinden enjekte edilir ancak bunun komşu ağdan kablo üzerinden gönderilemeyeceğine dair belirgin bir neden görülmemektedir. Ek Detaylar: Yeniden oluşturucuda şu ağ arayüzü zinciri kurulmuştur: ┌────────────────┐ ┌────────────────┐ │ veth0_to_hsr ├───┤ hsr_slave0 ┼───┐ └────────────────┘ └────────────────┘ │ │ ┌──────┐ ├─┤ hsr0 ├───┐ │ └──────┘ │ ┌────────────────┐ ┌────────────────┐ │ │┌────────┐ │ veth1_to_hsr ┼───┤ hsr_slave1 ├───┘ └┤ │ └────────────────┘ └────────────────┘ ┌┼ bridge │ ││ │ │└────────┘ │ ┌───────┐ │ │ ... ├──────┘ └───────┘ Çökmeye yol açan olayları tetiklemek için yeniden oluşturucu, bozuk bir HSR çerçevesi gönderir...
Nasıl düzeltilir
- linux linux_kernel5.10.241, 5.13, 5.15.190, 6.1.149, 6.6.103, 6.12.44, 6.16.4 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.10.42 ≤ v < 5.10.241, 5.12.9 ≤ v < 5.13, 5.13.1 ≤ v < 5.15.190, 5.16 ≤ v < 6.1.149, 6.2 ≤ v < 6.6.103, 6.7 ≤ v < 6.12.44, 6.13 ≤ v < 6.16.4, 5.13, 6.17 | 5.10.241, 5.13, 5.15.190, 6.1.149, 6.6.103, 6.12.44, 6.16.4 |
| debian debian_linux | 11.0 | — |
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.