CVE-2025-40254 - net: openvswitch: 移除从未正常工作的NSH字段设置支持
概述
在Linux内核中,已解决以下漏洞: net: openvswitch: 移除从未正常工作的NSH字段设置支持
漏洞描述
对set(nsh(...))动作的验证是完全错误的。
它通过了nsh_key_put_from_nlattr()函数,该函数与验证流匹配和push_nsh()动作的NSH密钥的函数相同。然而,set(nsh(...))具有非常不同的内存布局。在带掩码的set()情况下,其中的嵌套属性大小会翻倍。这使得正确的验证变得不可能。
代码中还存在对“masked”标志的混淆,该标志表示嵌套属性大小翻倍,同时包含值和掩码;而is_mask则表示我们正在解析的值是掩码。这导致在验证期间尝试使用SW_FLOW_KEY_PUT()写入匹配的掩码部分时内核崩溃,而validate_nsh()没有为其分配任何内存:
|
|
此过程中的第三个问题是,在尝试将非掩码set转换为掩码set时,validate_set()复制并使OVS_KEY_ATTR_NSH的大小翻倍,就好像它没有任何嵌套属性一样。它应该独立地复制每个嵌套属性并使它们的大小翻倍。并且此过程必须在流转储期间从掩码变体转换回非掩码变体时正确反转。
最终,尝试使用此操作的结果只能是验证失败或内核崩溃。如果有人设法安装了带有此类操作的流,它也绝对无法完成预期的功能,因为所有的密钥和掩码都混淆了。
修复所有问题是一项复杂的任务,因为它需要重写大部分验证代码。
考虑到这一点,以及该功能自引入以来从未正常工作的事实,让我们完全移除它。与其尝试在稳定版本中修复它,不如稍后通过适当的实现重新引入它。
信息
发布日期: 2025年12月4日 下午4:16 最后修改日期: 2025年12月4日 下午5:15 远程可利用: 否 来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
受影响产品
以下产品受CVE-2025-40254漏洞影响。即使cvefeed.io知晓受影响产品的确切版本,以下表格中也不包含该信息。 暂无受影响产品记录 受影响供应商总数: 0 | 产品数量: 0
解决方案
移除无法正常工作的NSH字段支持,以防止验证失败和内核崩溃。
- 移除
set(nsh(...))动作验证代码。 - 移除
push_nsh()动作验证代码。 - 移除
nsh_key_put_from_nlattr()函数。
参考链接
以下是提供与CVE-2025-40254相关的深入信息、实用解决方案和有价值工具的外部链接精选列表。
CWE - 常见弱点枚举
虽然CVE标识了漏洞的具体实例,但CWE对可能导致漏洞的常见缺陷或弱点进行分类。CVE-2025-40254与以下CWE相关联:
(原文此部分无具体CWE编号列表)
常见攻击模式枚举和分类 (CAPEC)
常见攻击模式枚举和分类 (CAPEC) 存储了攻击模式,这些模式描述了对手利用CVE-2025-40254弱点的常见属性和方法。
(原文此部分无具体CAPEC信息)
漏洞时间线详情
漏洞历史记录详细信息有助于理解漏洞的演变,并识别可能影响漏洞严重性、可利用性或其他特征的最新更改。
| 事件 | 类型 | 旧值 | 新值 |
|---|---|---|---|
| 新CVE接收自416baaa9-dc9f-4396-8d5f-8c081fb06d67,2025年12月4日 | 添加 | 描述 | (同上文漏洞描述) |
| 添加 | 参考 | https://git.kernel.org/stable/c/0b903f33c31c82b1c3591279fd8a23893802b987 | |
| 添加 | 参考 | https://git.kernel.org/stable/c/3415faa1fcb4150f29a72c5ecf959339d797feb7 | |
| 添加 | 参考 | https://git.kernel.org/stable/c/4689ba45296dbb3a47e70a1bc2ed0328263e48f3 | |
| 添加 | 参考 | https://git.kernel.org/stable/c/9c61d8fe1350b7322f4953318165d6719c3b1475 | |
| 添加 | 参考 | https://git.kernel.org/stable/c/dfe28c4167a9259fc0c372d9f9473e1ac95cff67 |
漏洞评分详情
此漏洞暂无CVSS指标可用。