CVE-2026-97956
执行摘要
CVE-2026-97956 是 Linux 内核 net_failover 驱动中的一个死锁漏洞,在网络设备名称变更路径(net_failover_slave_name_change())中触发。当拥有配置网络接口所需权限的本地攻击者或进程在 failover 从属设备上发起名称变更时,dev_open() 路径会尝试获取调用链上层已由 netdev_lock_ops() 持有的互斥锁,导致内核在持有 RTNL 的情况下死锁。影响是拒绝服务:任务阻塞、RTNL 锁被无限期持有,内核网络配置操作停止运行 — 在受影响系统上可能造成 panic 或不可恢复的挂起。
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
技术分析
net_failover 驱动提供一对设备(一个主设备和一个从属设备)的故障转移能力。当从属网络设备被重命名时,网络设备通知器链会调用 net_failover_slave_name_change() 来更新驱动的内部状态。在易受攻击的代码路径中,该函数调用了 dev_open()。
NVD 描述中的回溯记录了确切的机制:
mutex_lock+0x3b/0x50
dev_open+0x3b/0xe0
net_failover_slave_name_change+0x22/0x40
failover_event+0xd4/0x1e0
...
netif_change_name+0x200/0x330
do_setlink.isra.0+0xb12/0xdf0
rtnl_setlink+0x302/0x670
...
__x64_sys_sendto+0x24/0x40
关键的架构细节在描述中有明确说明:netdev_lock_ops() 已被上层调用者持有。当名称变更通知到达 net_failover_slave_name_change() 时,调用 dev_open() 会尝试获取一个该函数的调用上下文已持有的互斥锁,导致经典的自死锁 / 递归锁情景。根据描述,修复的方法是用 netif_open() 替代 dev_open(),因为 netif_open() 假定锁已持有。
这被明确描述为提交 b84c5632c7b3(“net: net_failover: Fix the deadlock in slave register”)的同类修复,表明同类死锁缺陷此前曾在从属设备注册路径中修复过。
关于攻击面:该路径是通过 RTNL(rtnl_setlink)驱动 RTNetlink 接口名称变更请求可达的,而该请求源自 sendto() 系统调用。这需要执行网络链路配置操作所需的权限(通常是 CAP_NET_ADMIN 或等价的基于用户命名空间的权限)。提供的回溯中的 security_capable+0x9a/0x1e0 和 ns_capable+0x31/0x60 帧与此权限检查一致。
请注意:NVD 描述中未提供严重性评分、CWE、受影响版本范围和补丁提交。具体受影响的内核版本无法确定。
利用场景
未发现公开 PoC;攻击链根据漏洞类别以及 NVD 描述中的回溯进行推断。
侦察/目标识别。 攻击者需要以“本地”方式访问目标主机,并具有配置网络设备的能力 — 存在
net_failover驱动(net_failover.ko)且存在配对的故障转移主/从设备对的系统。检查ip link中的故障转移配置,并确认内核暴露net_failover_slave_name_change(即该脆弱函数存在)。触发。 攻击者通过 RTNetlink 对故障转移从属设备执行接口重命名操作 — 对应回溯中的
rtnl_setlink/do_setlink路径。这会触发netif_change_name,它通过通知器链(failover_event)向下调用net_failover_slave_name_change()。在该函数内部,对dev_open()的调用尝试获取调用链上层已由netdev_lock_ops()持有的互斥锁。执行结果。 互斥锁永远不会被释放。执行线程阻塞在
mutex_lock→__schedule→schedule_preempt_disabled处,如回溯所示。由于这在持有 RTNL 的情况下触发,其他需要 RTNL 的网络配置操作也会停滞。利用后影响。 后果是拒绝服务:线程挂起、网络配置子系统及其依赖组件锁定,根据内核配置和后续操作可能发生 panic。持续/重复触发会维持 DoS 状态。NVD 描述中未暗示任何权限提升、数据泄露或持久化控制 — 影响纯粹是“可用性”驱动的。
影响评估
NVD 未提供 CVSS 评分或向量;因此无法引用 CVSS 子评分。基于回溯和描述:
- 受影响组件: Linux 内核
net_failover驱动。 - 受影响主体: 具有
CAP_NET_ADMIN(或处于用户命名空间中)的本地用户/进程。 - 影响: 拒绝服务 — 内核互斥锁死锁导致任务阻塞并长时间持有 RTNL;可能影响整个网络栈吞吐和配置。
- 影响范围: 局限于单个主机。高度依赖故障转移配置的系统(虚拟化/云主机、NFV 节点、容器主机)在发生死锁时因网络中断面临最高风险。
- 由于缺乏具体版本数据,无法评估普遍性。 未为 CVE-2026-97956 记录 CISA KEV 条目,也未跟踪到公开利用代码或 Nuclei 模板。
检测指南
以下规则基于死锁类别以及 NVD 描述中的 net_failover_slave_name_change / dev_open 回溯进行推断。根据跟踪的数据,没有公开的 PoC,因此没有可用的基于有效载荷的确切特征;这些规则旨在检测行为迹象(接口重命名活动、挂起的内核调用堆栈)。
Sigma 规则
title: Suspicious RTNetlink Interface Rename Targeting Failover Slave (Potential net_failover Deadlock)
id: 7f1c2d3a-4b5e-4f6a-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects RTNetlink link-name changes on failover slave interfaces, which can trigger the net_failover_slave_name_change deadlock (CVE-2026-97956).
logsource:
product: linux
service: auditd
detection:
selection_syscall:
type: SYSCALL
syscall: sendto
selection_keywords:
key|contains:
- 'net_failover'
- 'netif_change_name'
- 'rtnl_setlink'
condition: selection_syscall and selection_keywords
falsepositives:
- Legitimate network administration on failover pairs
level: medium
tags:
- attack.impact
- cve.2026.97956
YARA 规则
rule CVE_2026_97956_net_failover_deadlock
{
meta:
description = "Detects references to the net_failover deadlock fix in kernel sources, patches, or logs"
cve = "CVE-2026-97956"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-97956"
date = "2026-01-01"
strings:
$a = "net_failover_slave_name_change" ascii wide
$b = "Fix the deadlock in net_failover_slave_name_change" ascii wide
$c = "b84c5632c7b3" ascii wide
condition:
any of them
}
Suricata IDS 规则
alert ip any any -> any any (msg:"CVE-2026-97956 net_failover slave name change deadlock activity"; content:"net_failover"; nocase; threshold: type both, track by_src, count 1, seconds 60; classtype:attempted-dos; reference:cve,2026-97956; sid:202697956; rev:1;)
Elastic 检测
process where event.category == "process" and event.type == "start" and
process.name == "ip" and
process.args : "*set*" and
process.args : "*name*" and
process.args : "*failover*"
Splunk SPL 查询
index=linux_logs (sourcetype="auditd" OR sourcetype="syslog")
| search ("net_failover_slave_name_change" OR "netif_change_name" OR "rtnl_setlink")
| stats count min(_time) as firstTime max(_time) as lastTime by host, process, key
| where count > 0
| convert ctime(firstTime) ctime(lastTime)
Wazuh OSSEC 规则
<group name="linux,cve-2026-97956,">
<rule id="100979" level="8">
<decoded_as>syslog</decoded_as>
<match>net_failover_slave_name_change|netif_change_name|rtnl_setlink</match>
<description>CVE-2026-97956: possible net_failover slave name change deadlock activity detected</description>
<mitre>
<id>T1499</id>
</mitre>
</rule>
</group>
缓解与补丁指南
补丁置信度:0/4(未修补 — 无来自任何跟踪来源的补丁证据)。
NVD 描述引用了一个同类修复,并指明该缓解措施将 dev_open()(在 netdev_lock_ops() 已持有时会获取互斥锁)替换为 netif_open()(假定锁已持有)。根据跟踪的数据,该修复的任何上游提交哈希、稳定版本发布日期或受影响版本范围均不可用。在跟踪的来源中,未提供供应商修复包、变通方法或受影响版本列表。
立即缓解措施:
- 限制具有创建/重命名网络链路权限的本地用户,即限制
CAP_NET_ADMIN和未授权用户命名空间的创建。 - 在不需要时禁用或卸载
net_failover驱动(rmmod net_failover),或在不需要故障转移的负载上禁用该配置。 - 将设备名称变更操作限制在特权受控平面内,并监控在故障转移从属设备上异常的
ip link set ... name使用情况。
- 限制具有创建/重命名网络链路权限的本地用户,即限制
补丁/升级步骤:
- 本 CVE 未记录可用的补丁。持续监控 Linux 内核稳定版和 LTS 分支以及
net_failover维护者分支,以获取b84c5632c7b3的同类修复;待上游提交发布后再应用。 - 在供应商内核(发行版 CVE 跟踪列表)发布后升级到相应的内核包。
- 本 CVE 未记录可用的补丁。持续监控 Linux 内核稳定版和 LTS 分支以及
长期加固:
- 强制最小权限:极少授予本地普通用户
CAP_NET_ADMIN。 - 采用内核加固缓解措施(例如受限用户命名空间、SELinux/AppArmor 策略)以降低该 RTNetlink 攻击面的可达性。
- 部署上述检测规则以捕获重命名路径上的重复触发尝试,将其作为死锁风险的早期预警。
- 强制最小权限:极少授予本地普通用户
参考文献
- NVD — CVE-2026-97956:https://nvd.nist.gov/vuln/detail/CVE-2026-97956
- Linux 内核上游
net_failover修复(由 NVD 描述引用的同胞提交):b84c5632c7b3— “net: net_failover: Fix the deadlock in slave register” - Linux 内核网络子系统文档及
net_failover驱动源码(drivers/net/net_failover.c) — 用于理解net_failover_slave_name_change/dev_open/netif_open调用关系。 - MITRE CWE-833:死锁 — https://cwe.mitre.org/data/definitions/833.html
- CISA 已知被利用漏洞目录(检查结果为否,截至:未列出):https://www.cisa.gov/known-exploited-vulnerabilities-catalog
未发现公开的威胁行为者活动、公开利用代码或野利用证据与 CVE-2026-97956 相关联。
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.