Linux Distros 未修补的漏洞:CVE-2025-39948

critical Nessus 插件 ID 269454

简介

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

描述

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

- ice修复多缓冲区帧上的 Rx 页面泄漏 ice_put_rx_mbuf() 函数会为当前帧中的每个缓冲区处理调用 ice_put_rx_buf()。此函数作为处理 ice 驱动程序中多缓冲区 XDP 支持的一部分引入。其工作方式如下:迭代缓冲区,从 first_desc 直到 1 加上帧中的碎片总数,在执行 XDP 程序之前就开始缓存。如果硬件发布大小为 0 的描述符则 ice_put_rx_mbuf() 中使用的逻辑会中断。系统会跳过此类描述符并且不会将其作为 ice_add_xdp_frag 中的片段添加。由于缓冲区未被计为片段因此我们不会在 ice_put_rx_mbuf() 中对其进行迭代从而不会调用 ice_put_rx_buf()。由于我们不调用 ice_put_rx_buf()因此我们不会尝试重新使用或释放该页面。这会在环中留下一个过时页面因为我们不会增加 next_to_alloc。ice_reuse_rx_page() 假设 next_to_alloc 已正确递增并且其始终指向带有空页面的缓冲区。由于此函数不进行检查因此它会愉快地在 next_to_alloc 缓冲区顶部回收页面从而丢失对旧页面的跟踪。请注意此泄漏仅会在多缓冲区帧发生。ice_put_rx_mbuf() 函数始终至少处理一个缓冲区因此单缓冲区帧始终得到正确处理。目前尚不清楚为什么硬件有时会向我们提供大小为 0 的描述符但在 9K MTU 使用的巨型帧中稍微有规则地发生这种情况。为了修复 ice_put_rx_mbuf()我们需要确保在 first_desc 和 next_to_clean 之间的所有缓冲区上调用 ice_put_rx_buf()。借用用于此相同目的的 i40e 中类似函数的逻辑。在 ice_get_pgcnts() 中也使用相同的逻辑。不只是迭代片段数而是使用一个迭代的循环直到当前索引达到刚刚过去的当前帧的 next_to_clean 元素。与 i40e 不同ice_put_rx_mbuf() 函数会在指示数据包末尾的帧的最后一个缓冲区中调用 ice_put_rx_buf()。对于线性多缓冲区帧,调整 pagecnt_bias 时需要多加注意。XDP 程序可能会释放帧末尾的片段在这种情况下片段页面已释放。只更新仍存在 post-XDP 程序的第一个描述符的 pagecnt_bias 和碎片。注意仅访问碎片缓冲区的共享信息因为这可避免明显的缓存缺失。xdp_xmit 值仅在 XDP 程序运行时才需要更新并且每个数据包仅更新一次。终止 ice_put_rx_mbuf() 中的 xdp_xmit 指针参数。而是直接在 ice_clean_rx_irq() 函数中设置 xdp_xmit。这样就无需传递参数,也避免了对帧中的每个缓冲区执行额外的按位“或”操作。移动 ntc 本地变量的增量以确保其在对 ice_get_pgcnts() 或 ice_put_rx_mbuf() 的所有调用*之前*更新因为循环逻辑需要当前帧之后紧接着的元素的索引。现在我们使用 ring 中的索引指针来识别数据包因此不再需要跟踪或缓存 rx_ring 中的片段数量。 (CVE-2025-39948)

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

解决方案

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

另见

https://security-tracker.debian.org/tracker/CVE-2025-39948

插件详情

严重性: Critical

ID: 269454

文件名: unpatched_CVE_2025_39948.nasl

版本: 1.1

类型: local

代理: unix

系列: Misc.

发布时间: 2025/10/8

最近更新时间: 2025/10/8

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

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.5

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

CVSS 分数来源: CVE-2025-39948

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.5

矢量: 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:O/RC:C

漏洞信息

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

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

易利用性: No known exploits are available

漏洞发布日期: 2025/10/4

参考资料信息

CVE: CVE-2025-39948