CVE-2025-40254

Naməlum

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: net: openvswitch: nsh sahələrini təyin etmək üçün heç vaxt işləməmiş dəstəyin silinməsi set(nsh(...)) hərəkətinin validasiyası tamamilə yanlışdır. Bu proses, axın uyğunlaşdırması (flow match) və push_nsh() hərəkəti üçün NSH açarlarını validasiya edən eyni funksiya olan nsh_key_put_from_nlattr() funksiyası vasitəsilə həyata keçirilir. Lakin set(nsh(...)) çox fərqli yaddaş strukturuna malikdir. Maskalanmış set() halında buradakı iç-içə atributların ölçüsü ikiqat artırılır. Bu isə düzgün validasiyanı qeyri-mümkün edir. Kodda həmçinin 'masked' bayrağı (iç-içə atributların həm dəyəri, həm də maskanı ehtiva etdiyini və ölçüsünün ikiqat olduğunu bildirir) ilə 'is_mask' bayrağı (təhlil edilən dəyərin maska olduğunu bildirir) arasında qarışıqlıq mövcuddur. Bu, validasiya zamanı SW_FLOW_KEY_PUT() ilə uyğunlaşdırmanın maska hissəsinə yazmağa çalışarkən kernel-in çökməsinə səbəb olur, halbuki validate_nsh() bunun üçün heç bir yaddaş ayırmır: BUG: kernel NULL pointer dereference, address: 0000000000000018 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary) RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch] Call Trace: <TASK> validate_nsh+0x60/0x90 [openvswitch] validate_set.constprop.0+0x270/0x3c0 [openvswitch] __ovs_nla_copy_actions+0x477/0x860 [openvswitch] ovs_nla_copy_actions+0x8d/0x100 [openvswitch] ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch] genl_family_rcv_msg_doit+0xdb/0x130 genl_family_rcv_msg+0x14b/0x220 genl_rcv_msg+0x47/0xa0 netlink_rcv_skb+0x53/0x100 genl_rcv+0x24/0x40 netlink_unicast+0x280/0x3b0 netlink_sendmsg+0x1f7/0x430 ____sys_sendmsg+0x36b/0x3a0 ___sys_sendmsg+0x87/0xd0 __sys_sendmsg+0x6d/0xd0 do_syscall_64+0x7b/0x2c0 entry_SYSCALL_64_after_hwframe+0x76/0x7e Bu proseslə bağlı üçüncü problem ondan ibarətdir ki, maskalanmamış set-i maskalanmışa çevirməyə çalışarkən, validate_set() OVS_KEY_ATTR_NSH-ni sanki heç bir iç-içə atributu yoxmuş kimi kopyalayır və ölçüsünü ikiqat artırır. Əslində, o, hər bir iç-içə atributu kopyalamalı və onların ölçüsünü müstəqil şəkildə ikiqat artırmalı idi. Və bu proses, axın dump-u zamanı maskalanmış variantdan yenidən maskalanmamış varianta çevrilərkən düzgün şəkildə tərsinə çevrilməlidir. Nəticə etibarilə, bu hərəkəti istifadə etməyə cəhdin yalnız iki nəticəsi ola bilər: ya validasiya xətası, ya da kernel-in çökməsi. Əgər kiminsə belə bir hərəkətlə axın quraşdırmağı bacarması halında belə, bütün açarlar və maskalar qarışdığı üçün bu, mütləq şəkildə gözlənilən funksiyanı yerinə yetirməyəcəkdir. Bütün problemlərin həlli mürəkkəb tapşırıqdır, çünki bu, validasiya kodunun böyük hissəsinin yenidən yazılmasını tələb edir. Bunu və sözügedən funksionallığın tətbiq edildiyi gündən bəri heç vaxt işləmədiyini nəzərə alaraq, gəlin onu tamamilə silək. Onu stabil versiyalarda düzəltməyə çalışmaqdansa, daha sonra düzgün implementasiya ilə yenidən təqdim etmək daha yaxşıdır.

CiddilikNaməlum
CVSS—
İstismar ehtimalı—
MəhsulLinux
Dərc4 dek 2025
İlk görülmə4 dek 2025

Necə düzəltmək olar

Yeniləyin
  • Linux Linux3415faa1fcb4150f29a72c5ecf959339d797feb7, 3d2e7d3b28469081ccf08301df07cc411a1cc5e9, f95bef5ba0b88d971b02c776f24bd17544930a3a, 87d2429381ddcf8cbd30c8c36793a4f7916d5f99, 0b903f33c31c82b1c3591279fd8a23893802b987, 9c61d8fe1350b7322f4953318165d6719c3b1475, 4689ba45296dbb3a47e70a1bc2ed0328263e48f3, dfe28c4167a9259fc0c372d9f9473e1ac95cff67 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linuxb2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < 3415faa1fcb4150f29a72c5ecf959339d797feb7, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < 3d2e7d3b28469081ccf08301df07cc411a1cc5e9, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < f95bef5ba0b88d971b02c776f24bd17544930a3a, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < 87d2429381ddcf8cbd30c8c36793a4f7916d5f99, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < 0b903f33c31c82b1c3591279fd8a23893802b987, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < 9c61d8fe1350b7322f4953318165d6719c3b1475, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < 4689ba45296dbb3a47e70a1bc2ed0328263e48f3, b2d0f5d5dc53532e6f07bc546a476a55ebdfe0f3 ≤ v < dfe28c4167a9259fc0c372d9f9473e1ac95cff67, 4.153415faa1fcb4150f29a72c5ecf959339d797feb7, 3d2e7d3b28469081ccf08301df07cc411a1cc5e9, f95bef5ba0b88d971b02c776f24bd17544930a3a, 87d2429381ddcf8cbd30c8c36793a4f7916d5f99, 0b903f33c31c82b1c3591279fd8a23893802b987, 9c61d8fe1350b7322f4953318165d6719c3b1475, 4689ba45296dbb3a47e70a1bc2ed0328263e48f3, dfe28c4167a9259fc0c372d9f9473e1ac95cff67

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.

Intelligence 360 paketində

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.

CVE-2025-40254 · Linux · Dark Radar