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

critical Nessus 插件 ID 338883

简介

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

描述

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

- mm/huge_memory:修复huge_zero_pfn争用 修补程序系列 mm/huge_memory:修复 v2 huge_zero_pfn争用。引用计数huge_zero_folio实现中存在细微的争用。快速路径原子逻辑未考虑这样一个事实,即在争用 get_huge_zero_folio() 安装有效值之后,shrinker(丢弃最后一个 huge_zero_refcount 引脚)可用 shrink_huge_zero_folio_scan() 中的 ~0UL sentinel 值覆盖huge_zero_pfn。这会导致 huge_zero_folio 得到正确设置,但huge_zero_pfn设置错误,从而造成 is_huge_zero_pfn() 和结果 is_huge_zero_pmd() 将巨大的 zero 作品集误识别为普通的 THP 作品集。这可能导致巨大的零作品集被拆分并在其他方面受到不正确的处理。解决这个问题的方法非常微妙,因为存在原子快速路径,因此必须非常谨慎地对待弱有序架构中的排序。第一次提交通过在 huge_zero_[pfn, folio, refcount] 写入方面引入旋转锁来修复此问题,并仔细考虑在快速路径中加载/存储顺序。它被放在第一位并尽可能小,以便它可以自行向后移植。第二次提交纯粹清理,可重做CONFIG_PERSISTENT_HUGE_ZERO_FOLIO逻辑,以便更好地将持久逻辑与动态分配的逻辑分离。此修补程序(共 2 个):如果 !CONFIG_PERSISTENT_HUGE_ZERO_FOLIO,则 huge_zero_refcount 会引用计数huge_zero_folio,并由 mm_get_huge_zero_folio() 返回。当调用者完成大型零页面的处理后,其引用计数将减少。只有 shrinker 可以将引用计数设置为零。遗憾的是,将引用计数递减为零的 shrinker 与并发页面错误之间会发生争用。这是因为如果非常不幸,shrink_huge_zero_folio_scan() 可能会在将 huge_zero_refcount 设置为零和写入无效值之间被抢占。在此期间,get_huge_zero_folio() 可在 shrink_huge_zero_folio_scan() 恢复之前写入 huge_zero_pfn。在这种情况下,大型零作品集将持续被错误识别,从而导致为大型零作品集错误地输入 THP 代码路径:CPU 0 CPU 1 =======================================|================================= shrink_huge_zero_folio_scan() |atomic_cmpxchg() 将 refcount 设置为 0 |xchg() 将 huge_zero_folio 设置为 NULL |get_huge_zero_folio() | |atomic_inc_not_zero() -> 长期抢占零 |分配新的巨型零作品集 | |写入有效的 huge_zero_folio v |写入有效huge_zero_pfn 使用 ~0UL 的 huge_zero_pfn 覆盖 <--- 无效覆盖!这会导致大型零页面的 is_huge_zero_pfn() 和 is_huge_zero_pmd() 错误地返回 false,从而可导致诸如大型零作品集拆分不正确等问题。
请注意,问题出在 huge_zero_pfn 而不是 huge_zero_folio,因为 get_huge_zero_folio() 使用具有重试循环huge_zero_folio为 NULL 时门控的 cmpxchg(),而 shrink_huge_zero_folio_scan() 使用 xchg() 设置huge_zero_folio。通过引入旋转锁 huge_zero_lock 来修复此问题,以防止同时写入 huge_zero_folio、huge_zero_pfn 和 huge_zero_refcount。这里需要非常小心以确保正确性:get_huge_zero_folio() 中的快速路径使用 atomic_inc_not_zero(),它位于关键部分之外,这意味着巨大的零分配是在零huge_zero_refcount上进行的。快速路径不使用huge_zero_lock,因此关键部分与它无关。因此需要不变量 - huge_zero_refcount 必须:* 仅在huge_zero_lock关键部分中进行设置,以确保 huge_zero_pfn、huge_zero_folio 和 ---truncated--- (CVE-2026-74632) 的序列化

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

解决方案

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

另见

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

插件详情

严重性: Critical

ID: 338883

文件名: unpatched_CVE_2026_74632.nasl

版本: 1.1

类型: Local

代理: unix

系列: Misc.

发布时间: 2026/8/22

最近更新时间: 2026/8/22

支持的传感器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

风险信息

VPR

风险因素: Medium

分数: 4.3

百分位: 53.5

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 6.4

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

CVSS 分数来源: CVE-2026-74632

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: cpe:/o:debian:debian_linux:11.0, cpe:/o:debian:debian_linux:12.0, cpe:/o:debian:debian_linux:13.0, cpe:/o:debian:debian_linux:14.0, p-cpe:/a:debian:debian_linux:linux

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

易利用性: No known exploits are available

漏洞发布日期: 2026/8/22

参考资料信息

CVE: CVE-2026-74632