Linux Distros 未修补的漏洞:CVE-2026-46110

critical Nessus 插件 ID 317581

语言:

简介

Linux/Unix 主机上安装的一个或多个程序包存在漏洞,但供应商表示不会修补此漏洞。

描述

Linux/Unix 主机中安装的一个或多个程序包受到一个漏洞影响,而供应商没有提供补丁程序。

- net:stmmac:RX 内存耗尽时防止空取消引用 CPU 通过常规 DMA 从 MAC 接收帧:CPU 为 MAC 分配缓冲区,然后 MAC 填充缓冲区并将所有权返回给 CPU。对于每个硬件 RX 队列,CPU 和 MAC 通过 DMA 描述符的共享环形数组进行协调:每个 DMA 缓冲区一个描述符。每个描述符都包括缓冲区的物理地址和指示哪一端拥有缓冲区的状态标志 (OWN):CPU 表示 OWN=0,MAC 表示 OWN=1。CPU 只允许设置标志,MAC 只允许清除标志,两者都必须按顺序通过环:因此环用于提交和完成。在 stmmac 驱动程序中,stmmac_rx() 会使用“cur_rx”索引为自己在环中的位置添加书签。该函数中的主要接收循环会检查 rx_descs[cur_rx].own=0,将相应的缓冲区提供给网络堆栈(指针为空),并以环大小为模数递增 'cur_rx'。循环退出后,stmmac_rx_refill() 会将其位置添加为书签,并以“dirty_rx”添加书签,分配新的缓冲区并重新设置描述符(设置 OWN=1)。如果它失败了任何分配,它只是提前停止(保留 OWN=0),并在下次调用时从中断的地方重试。这意味着描述符有三个阶段的生命周期(我自己的术语):- 'empty' (OWN=1, buffer valid) - 'full' (OWN=0, buffer valid and populated) - 'dirty' (OWN=0, buffer NULL) 但因为 stmmac_rx() 只检查 OWN,所以混淆了 'full'/'dirty'。过去(请参见“补丁:”),存在一个缺陷,循环可一直循环“cur_rx”,回到它脏化的第一个描述符,导致被误认为“full”时出现空取消引用。上述提交通过将循环的迭代限制上限设为“dma_rx_size - 1”解决了该 *特定* 失败,但这只是部分补丁:如果之前的 stmmac_rx_refill() 未完成,则循环可能需要完全循环的情况下可能会遇到残留的“脏”描述符。因此,当 stmmac_rx_refill() 的内存匮乏时间足够长以至于“cur_rx”赶上“dirty_rx”时,当前代码会发生错误(请参阅“Closes:”)。通过在前进“cur_rx”之前显式检查下一个条目是否为脏来修复此问题;如果是,则退出循环。这将阻止处理最终的、使用的描述符,直到 stmmac_rx_refill() 成功,但完全阻止了上一个缺陷补丁预期的“cur_rx == dirty_rx”歧义:因此也删除该钳子。由于 stmmac_rx_zc() 是 stmmac_rx() 的复制粘贴和调整方式,且代码结构相同,因此任何针对 stmmac_rx() 的补丁也都需要针对 stmmac_rx_zc() 的相应补丁。因此,请在此处应用相同的检查。
在 stmmac_rx()(而非 stmmac_rx_zc())中仍然存在一个相关缺陷:MAC 在最终描述符上设置 OWN=0 之后,在给予更多“空”描述符之前,它将无法再发送任何 DMA 完成的 IRQ。目前,驱动程序只是*希望*下一个 stmmac_rx_refill() 成功,否则有接收进程无限期停止的风险。但这不是回归,因此可在未来的更改中解决。(CVE-2026-46110)

请注意,Nessus 依赖供应商报告的程序包是否存在进行判断。

解决方案

目前尚未有任何已知的解决方案。

另见

https://security-tracker.debian.org/tracker/CVE-2026-46110

插件详情

严重性: Critical

ID: 317581

文件名: unpatched_CVE_2026_46110.nasl

版本: 1.1

类型: Local

代理: unix

系列: Misc.

发布时间: 2026/5/29

最近更新时间: 2026/5/29

支持的传感器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 6.4

矢量: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS 分数来源: CVE-2026-46110

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:U/RL:U/RC:C

漏洞信息

CPE: p-cpe:/a:debian:debian_linux:linux, cpe:/o:debian:debian_linux:12.0

必需的 KB 项: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched, Host/OS/identifier

易利用性: No known exploits are available

漏洞发布日期: 2026/5/28

参考资料信息

CVE: CVE-2026-46110