CVE-2021-47592
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net: stmmac: VLAN öncelikli Rx yönlendirme için tc flower silme işlemi düzeltildi Sorunu yeniden oluşturmak için: 1) VLAN Önceliği tabanlı çerçeve yönlendirmesi için 1 flower filtresi ekleyin: $ IFDEVNAME=eth0 $ tc qdisc add dev $IFDEVNAME ingress $ tc qdisc add dev $IFDEVNAME root mqprio num_tc 8 \ map 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 \ queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 hw 0 $ tc filter add dev $IFDEVNAME parent ffff: protocol 802.1Q \ flower vlan_prio 0 hw_tc 0 2) 'pref' kimliğini alın $ tc filter show dev $IFDEVNAME ingress 3) Belirli bir tc flower kaydını silin (örneğin pref 49151) $ tc filter del dev $IFDEVNAME parent ffff: pref 49151 dmesg üzerinden kernel NULL pointer ooops gözlemlenecektir: [ 197.170464] BUG: kernel NULL pointer dereference, address: 0000000000000000 [ 197.171367] #PF: supervisor read access in kernel mode [ 197.171367] #PF: error_code(0x0000) - not-present page [ 197.171367] PGD 0 P4D 0 [ 197.171367] Oops: 0000 [#1] PREEMPT SMP NOPTI <snip> [ 197.171367] RIP: 0010:tc_setup_cls+0x20b/0x4a0 [stmmac] <snip> [ 197.171367] Call Trace: [ 197.171367] <TASK> [ 197.171367] ? __stmmac_disable_all_queues+0xa8/0xe0 [stmmac] [ 197.171367] stmmac_setup_tc_block_cb+0x70/0x110 [stmmac] [ 197.171367] tc_setup_cb_destroy+0xb3/0x180 [ 197.171367] fl_hw_destroy_filter+0x94/0xc0 [cls_flower] Yukarıdaki sorun, aşağıda gösterilen ve tc filtre silme işlemi için artık geçerli olmayan struct flow_rule *rule yapısını elde etmek amacıyla flow_cls_offload_flow_rule() fonksiyonunu kullanan tc_del_vlan_flow() fonksiyonunun önceki hatalı uygulamasından kaynaklanmaktadır. struct flow_rule *rule = flow_cls_offload_flow_rule(cls); struct flow_dissector *dissector = rule->match.dissector; Bu nedenle, tc_del_vlan_flow() fonksiyonunun, tc_add_vlan_flow() içinde daha önce yapılandırılmış olan (hw_tc tarafından yapılandırılan) doğru RX kuyruğu için ilgili VLAN cls kaydını sildiğinden emin olmak adına bu yama, şu anda VLAN önceliği için kullanılan 'RX frame steering' tc flower için sürücü tarafında bir flow_cls_offload kaydı olarak stmmac_rfs_entry yapısını tanıtmaktadır. Uygulama, EtherType tabanlı yönlendirme gibi diğer RX çerçeve yönlendirme türlerini içerecek şekilde gelecekteki genişletmeler dikkate alınarak hazırlanmıştır. v2: - Gereksiz derecede kapsamlı geri izleme (backtrace) temizlendi ve kernel NULL pointer sorunu daha iyi açıklamak için git mesajı yeniden yazıldı.
Nasıl düzeltilir
- linux linux_kernel5.15.11 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.13 ≤ v < 5.15.11, 5.16 | 5.15.11 |
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.