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

high Nessus 插件 ID 345046

简介

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

描述

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

- btrfs:数据回写提交期间的写保护 Folio 095be159f3eb(btrfs:统一 Folio 脏标记清除) 将 extent_write_cache_pages() 中的 folio_clear_dirty_for_io() 调用替换为普通 folio_test_dirty() 检查。除了清除脏标记外,folio_clear_dirty_for_io() 还会调用 folio_mkclean(),对映射 folio 的共享 mmap PTE 进行写保护。请注意,稍后在 submit_one_sector() 中,当我们在作品集的最后一个扇区(非子页面情况的唯一扇区)上清除脏时,仍然会调用 folio_clear_dirty_for_io()。但我们在 extent_write_cache_pages() 中失去了这个早期的电话。
如果没有额外的写保护,使用 mmap-ed 文件的进程可在回写使用扇区时修改扇区,其期望得到稳定的 folio(校验和、压缩、复制等)而不发生错误,表现为一些具体的缺陷。1. 对于大型对开本或子页面扇区大小,可以提交不涵盖整个对开本的简历。当这种情况发生时,我们将有一个我们 *不* 调用 folio_clear_dirty_for_io() 的对开本的简历。如果具有现有 mmap-ed PTE 的任务在此窗口中写入(没有错误..),则可导致损坏。如果写入在校验和或写入本身正在进行时到达,这可导致无效的校验和,并且稍后会在读取时造成损坏报告。如果写入是在校验和/写入完成后,但在清除最后一个脏扇区之前到达的,则写入存在于页面缓存中,但不会影响脏跟踪,并且将在完全完成提交作品集并清除脏位时丢失。这会导致即使调用 fsync() 也会丢失写入。2. 对于与主 extent_writepage() 循环分批完成的分区提交,我们还存在这些提交违反 csum 的风险。分区写入被限制在max_zone_append_size上并且与作品集不对齐,因此提交可以跨越两个作品集。在 extent_write_cache_pages() 中处理的第一个作品集将调用 extent_write_locked_range(),后者将提交下一个作品集的部分范围,而该作品集的其余部分仍可能是脏的。因此,清除提交的扇区脏不会调用 folio_clear_dirty_for_io(),我们遇到同样的问题。由于 extent_write_cache_pages() 会跳过这些批量提交的作品集(它们已被前面的作品集标记为从提交中进行回写),因此我们必须在 lock_delalloc_folios() 中添加额外的写保护。3. 对于内联盘区,这将微妙地存在丢失写入的风险,这些写入发生在我们复制内联盘区之后/期间,但在我们清除作品集上的脏盘区之前。4.
对于跨 EOF 的作品集,mmap 可篡改过去 EOF 的归零字节,并造成在未来的错误无法正确看到它们而非零的情况下保留这些字节。5. 最后,对于压缩盘区,我们在压缩作品集时冒着修改作品集的风险,这将导致压缩数据损坏。具体来说,在 run_delalloc_compressed() 中,我们将工作排队以在 BTRFS_COMPRESSION_CHUNK_SIZE (512K) 区块中执行 compress_file_range(),这些区块将调用该范围内的 btrfs_folio_clamp_clear_dirty()。
对于非子页面,这将始终安全地清除整个作品集。对于子页面,我们在这里也冒着部分清除的风险。特别是,想象一个 2M 作品集被分解成 512K 的工作块,这些工作块可能会在所有块 compress_file_range() 工作线程足够远以完成清除作品集的所有脏位图并进入 folio_clear_dirty_for_io() 之前开始对一个块进行压缩工作。提交范围边缘的大型作品集同样面临仅部分清除的风险。该系列中的另一个修补程序引入了这一特殊差距:提交 a4ef54dbb576(btrfs:使 extent_range_clear_dirty_for_io() 处理扇区大小<页面大小情况)我们不能简单地将调用还原为 folio_clear ---truncated--- (CVE-2026-89772)

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

解决方案

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

另见

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

插件详情

严重性: High

ID: 345046

文件名: unpatched_CVE_2026_89772.nasl

版本: 1.1

类型: Local

代理: unix

系列: Misc.

发布时间: 2026/9/12

最近更新时间: 2026/9/12

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

风险信息

VPR

风险因素: Medium

分数: 4.3

百分位: 53.43

CVSS v2

风险因素: Low

基本分数: 3.3

时间分数: 2.8

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

CVSS 分数来源: CVE-2026-89772

CVSS v3

风险因素: High

基本分数: 7.1

时间分数: 6.5

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

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

漏洞信息

CPE: 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/9/11

参考资料信息

CVE: CVE-2026-89772