CVE-2026-97612
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: mpls: son etiket çıxarıldıqda inner_protocol təmizlənsin skb_mpls_push() funksiyası enkapsulyasiyadan əvvəlki şəbəkə başlığını bir dəfə, !skb->inner_protocol şərti ilə qeyd edir. skb_mpls_pop() isə həmin qeydi heç vaxt təmizləmir, buna görə də o, təsvir etdiyi enkapsulyasiyadan daha uzun müddət qalır. Open vSwitch daha sonra inner_network_header-i hələ də köhnə və daha dərin ofsetə yönləndirən paketə yenidən MPLS əlavə edə bilər: etiketi əlavə etmək, bütün etiketləri çıxarmaq, resirkulyasiya etmək (ovs_flow_key_update() key->eth.type-ni yenidən törədir və network_header-i sıfırlayır, lakin inner_* sahələrini saxlayır), sonra yenidən əlavə etmək. ovs_fragment() bu qeydə etibar edir: skb->network_header = skb->inner_network_header; beləliklə, skb_network_offset() mənfi olur. Sərhəd yoxlaması imzalıdır: if (skb_network_offset(skb) > MAX_L2_LEN) mənfi ofset bu yoxlamadan keçir və prepare_frag() dəyəri genişləndirir: unsigned int hlen = skb_network_offset(skb); memcpy(&data->l2_data, skb->data, hlen); bu isə CPU başına olan 30 baytlıq buferdən təxminən 4 GiB həcmində memcpy əməliyyatına səbəb olur. v7.3-rc1 versiyasında təkrarlandı. RDX kəsilmiş uzunluqdur, (unsigned int)(-8): BUG: unable to handle page fault for address: ffffe8ffffc16000 #PF: supervisor write access in kernel mode Oops: 0002 [#1] SMP KASAN NOPTI RIP: 0010:memcpy+0x8/0x20 RDX: 00000000fffffff8 RSI: ffff888105d732db RDI: ffffe8ffffc16000 prepare_frag+0x3df/0x4e0 ovs_fragment+0x589/0x7e0 do_output+0x4ce/0x5e0 do_execute_actions+0x55d2/0x7b30 ovs_execute_actions+0xea/0x450 Kök səbəb 975b5b067f52 ("ipv6: sr: restore network header before routing and forwarding") commit-i ilə eyni formadadır: köhnəlmiş şəbəkə başlığı ofsetinin onu genişləndirən istehlakçıya çatması. Burada bu, MPLS push/pop yolunda yaranır. Paket artıq MPLS olmadıqda inner_protocol təmizlənsin ki, sonrakı push əməliyyatı cari başlığı yenidən qeyd etsin. net/sched/act_mpls.c faylı skb_mpls_pop() funksiyasının digər yeganə çağırıcısıdır və eyni düzəlişi alır; sch_frag.c faylı fragmentasiya zamanı inner_protocol-u OVS kimi saxlayır və bərpa edir.
Necə düzəltmək olar
- Linux Linux55ed97db27bffe29c21fdefd5d25601322c36ff8, 833ec2788322306407503b4cfc7745cd1f9d785f, 38db09804b2616aa1e2fcdf97f0c3ae8b9dbdd34, 0b3425fd0ecd515997956f7bb8a8a576b444ed64, 011e17b5cae19b9f6a150923275e41c278de64f0, da8c3a7f5d3137fec4ff60a6248f5f6d66b6a63e, b39120523475d6b436be7f6cb27d48064148a327, 78a86d75a70e1e227711c72865c59b1422d0a5ae və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < 55ed97db27bffe29c21fdefd5d25601322c36ff8, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < 833ec2788322306407503b4cfc7745cd1f9d785f, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < 38db09804b2616aa1e2fcdf97f0c3ae8b9dbdd34, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < 0b3425fd0ecd515997956f7bb8a8a576b444ed64, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < 011e17b5cae19b9f6a150923275e41c278de64f0, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < da8c3a7f5d3137fec4ff60a6248f5f6d66b6a63e, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < b39120523475d6b436be7f6cb27d48064148a327, 48d2ab609b6bbecb7698487c8579bc40de9d6dfa ≤ v < 78a86d75a70e1e227711c72865c59b1422d0a5ae, 4.9 | 55ed97db27bffe29c21fdefd5d25601322c36ff8, 833ec2788322306407503b4cfc7745cd1f9d785f, 38db09804b2616aa1e2fcdf97f0c3ae8b9dbdd34, 0b3425fd0ecd515997956f7bb8a8a576b444ed64, 011e17b5cae19b9f6a150923275e41c278de64f0, da8c3a7f5d3137fec4ff60a6248f5f6d66b6a63e, b39120523475d6b436be7f6cb27d48064148a327, 78a86d75a70e1e227711c72865c59b1422d0a5ae |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.