CVE-2025-40254

Belirsiz

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: net: openvswitch: nsh alanlarını ayarlamaya yönelik hiç çalışmamış desteği kaldır set(nsh(...)) eyleminin doğrulaması tamamen hatalıdır. Akış eşleşmesi ve push_nsh() eylemi için NSH anahtarlarını doğrulayan aynı işlev olan nsh_key_put_from_nlattr() işlevinden geçer. Ancak set(nsh(...)) çok farklı bir bellek düzenine sahiptir. İçindeki iç içe öznitelikler, maskelenmiş set() durumunda boyut olarak iki katına çıkar. Bu, uygun doğrulamayı imkansız hale getirir. Ayrıca kodda, iç içe özniteliklerin hem değeri hem de maskeyi içerecek şekilde boyut olarak iki katına çıktığını belirten 'masked' bayrağı ile ayrıştırdığımız değerin maske olduğunu belirten 'is_mask' arasında karışıklık vardır. Bu, doğrulama sırasında SW_FLOW_KEY_PUT() ile eşleşmenin maske kısmına yazılmaya çalışılırken çekirdek çökmesine neden olur, çünkü validate_nsh() bunun için herhangi bir bellek ayırmaz: 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 süreçteki üçüncü sorun, maskelenmemiş set'i maskelenmiş olana dönüştürmeye çalışırken validate_set() işlevinin OVS_KEY_ATTR_NSH boyutunu, sanki hiç iç içe özniteliği yokmuş gibi kopyalayıp iki katına çıkarmasıdır. Her iç içe özniteliği kopyalamalı ve bunları bağımsız olarak boyut olarak iki katına çıkarmalıdır. Ve bu süreç, akış dökümü sırasında maskelenmişten maskelenmemiş bir varyanta geri dönüştürülürken uygun şekilde tersine çevrilmelidir. Sonuç olarak, bu eylemi kullanmaya çalışmanın tek iki sonucu ya doğrulama hatası ya da çekirdek çökmesidir. Ve eğer birisi bir şekilde böyle bir eylem içeren bir akış kurmayı başarırsa, tüm anahtarlar ve maskeler karıştığı için kesinlikle yapması gerekeni yapmayacaktır. Tüm sorunları düzeltmek, doğrulama kodunun çoğunun yeniden yazılmasını gerektirdiği için karmaşık bir görevdir. Bu göz önüne alındığında ve bu işlevselliğin eklenmesinden bu yana hiç çalışmamış olması nedeniyle, tamamen kaldıralım. Kararlı sürümlerde düzeltmeye çalışmak yerine daha sonra uygun bir uygulamayla yeniden eklemek daha iyidir.

ÖnemBelirsiz
CVSS—
İstismar olasılığı—
ÜrünLinux
Yayın4 Ara 2025
İlk görülme4 Ara 2025

Nasıl düzeltilir

Güncelleyin
  • Linux Linux3415faa1fcb4150f29a72c5ecf959339d797feb7, 3d2e7d3b28469081ccf08301df07cc411a1cc5e9, f95bef5ba0b88d971b02c776f24bd17544930a3a, 87d2429381ddcf8cbd30c8c36793a4f7916d5f99, 0b903f33c31c82b1c3591279fd8a23893802b987, 9c61d8fe1350b7322f4953318165d6719c3b1475, 4689ba45296dbb3a47e70a1bc2ed0328263e48f3, dfe28c4167a9259fc0c372d9f9473e1ac95cff67 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
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

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.