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

medium Nessus 插件 ID 345108

简介

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

描述

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

- ocfs2:针对 refcount 区块验证器中的 rl_count 验证rl_used ocfs2_find_refcount_rec_in_rl() 遍历磁盘上的 refcount 记录数组: for (; i < le16_to_cpu(rb->rf_records.rl_used); i++) { rec = &rb->rf_records.rl_recs[i]; ... rl_recs[] 位于单个元数据块(通用配置为 4096 字节)中,因此其实际容量由 ocfs2_refcount_recs_per_rb(SB) 固定(16 字节ocfs2_refcount_rec的 4K 块有 247 条记录)。rl_used 和 rl_count 都由 ocfs2_validate_refcount_block() 直接从磁盘读取,在任何 refcount/reflink/CoW 操作遍历数组之前,从未针对该容量或彼此进行检查。具有 rl_used == 0xffff 的构建(或损坏)refcount 块会使上面的循环远超出块的末尾,从而取消引用 i 的 rl_recs[i],直到 65534。然后将生成的索引传递给同级 ocfs2_insert_refcount_rec(),其插入位移执行以下操作:if (index < le16_to_cpu(rf_list->rl_used)) memmove(&rf_list->rl_recs[index + 1], &rf_list->rl_recs[index], (le16_to_cpu(rf_list->rl_used) - index) * sizeof(struct ocfs2_refcount_rec));
即,最多 (0xffff - 索引) * 16 字节 (~1 MiB) 的 memmove() 来自已经超过块的偏移。可从针对构建/损坏的 ocfs2 图像的普通引用链接 (FICLONE) 访问此权限:附加其 cpos 排序经过叶中每条实际记录的盘区会强制查找从末尾运行,而不是在匹配时提早返回。攻击者模型为本地攻击者:CAP_SYS_ADMIN挂载构建或损坏的 ocfs2 镜像,或对支持已挂载的 ocfs2 文件系统的块设备进行原始写入。
ocfs2_validate_refcount_block() 已验证区块的 ECC、签名、rf_blkno和rf_fs_generation,但从未针对区块的实际磁盘容量进行rl_count/rl_used。这是 ocfs2_validate_extent_block() (fs/ocfs2/alloc.c) 已经为同级范围列表标头弥补的同一类间隙,该标头在任何代码遍历h_list之前检查记录容量和已使用的边界。l_recs[]: if (le16_to_cpu(eb->h_list.l_count) != ocfs2_extent_recs_per_eb(sb)) { rc = ocfs2_error(...); goto bail; } if (le16_to_cpu(eb->h_list.l_next_free_rec) > le16_to_cpu(eb->h_list.l_count)) { rc =ocfs2_error(...);戈托保释;} 将一对等效的检查添加到 ocfs2_validate_refcount_block():拒绝rl_count与 ocfs2_refcount_recs_per_rb() 返回的固定每块容量不匹配的 refcount 块,并拒绝rl_used > rl_count。设置 OCFS2_REFCOUNT_TREE_FL 时会跳过这两项检查,因为在这种情况下,相同的 union 字节持有一个ocfs2_extent_list (rf_list),而不是 refcount 记录列表 (rf_records) -- 当读取引用的盘区块时,ocfs2_validate_extent_block() 已单独验证该布局。这反映了现有的 !(rb->rf_flags &OCFS2_REFCOUNT_TREE_FL) 此文件中其他位置使用的防护(例如
ocfs2_get_refcount_rec()) 来决定 rf_records 还是 rf_list 是工会的活成员。完成之后,伪造的 rl_used/rl_count 将在区块验证时间 (ocfs2_error()) 捕获,与此函数中的所有其他损坏检查一致,而不是在 ocfs2_find_refcount_rec_in_rl() 中驱动越界读取和随后在 ocfs2_insert_refcount_rec() 中执行越界 memmove()。
已根据 v6.19 KASAN (KASAN_GENERIC) 版本上的构建图像进行验证:重播相同的引用链接 (FICLONE) 在此修补程序之前可靠地命中 __ocfs2_increase_refcount()/ocfs2_insert_refcount_rec() 中的 KASAN 报告,并且一旦 ocfs2_validate_refcount_block() 拒绝伪造的 rl_used/rl_count,则不会触发任何报告。(CVE-2026-89493)

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

解决方案

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

另见

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

插件详情

严重性: Medium

ID: 345108

文件名: unpatched_CVE_2026_89493.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

风险因素: Medium

基本分数: 6.8

时间分数: 5.8

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

CVSS 分数来源: CVE-2026-89493

CVSS v3

风险因素: Medium

基本分数: 6.6

时间分数: 6.1

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

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

漏洞信息

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

参考资料信息

CVE: CVE-2026-89493