目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CVE-2026-89772— btrfs 文件回写数据时页保护漏洞

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

In the Linux kernel, the following vulnerability has been resolved: btrfs: write-protect folios during data writeback commit 095be159f3eb ("btrfs: unify folio dirty flag clearing") replaced the folio_clear_dirty_for_io() call in extent_write_cache_pages() with

AI 预测 5.5 利用难度: 中等

影响版本矩阵 6

厂商产品 版本范围状态
Linux Linux a4ef54dbb576032ba31a646a5ffc8a26a83cb92c< 074c715e0b498891c09fe7f11e1cd9d7a04699bd affected
a4ef54dbb576032ba31a646a5ffc8a26a83cb92c< 5376c9db45368eb210b4d71104ac00a59dc8b6e0 affected
6.13 affected
< 6.13 unaffected
7.2.4≤ 7.2.* unaffected
7.3-rc1≤ * unaffected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-89772 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
btrfs: write-protect folios during data writeback
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: write-protect folios during data writeback commit 095be159f3eb ("btrfs: unify folio dirty flag clearing") replaced the folio_clear_dirty_for_io() call in extent_write_cache_pages() with a plain folio_test_dirty() check. Besides clearing the dirty flag, folio_clear_dirty_for_io() also calls folio_mkclean(), which write-protects the shared mmap PTEs mapping the folio. Note that we still do call folio_clear_dirty_for_io() later in submit_one_sector() when we clear dirty on the last sector of the folio (the only sector for non-subpage cases). But we lost this early call in extent_write_cache_pages(). Without the extra write-protection, a process with the file mmap-ed can modify a sector while it is being used by writeback in a way that expects a stable folio (checksumming, compressing, copying, etc...) without faulting, which manifests as a handful of concrete bugs. 1. For large folios or subpage sectorsize, it is possible to submit a bio which does not cover the whole folio. When this happens, we will have a bio in flight for a folio that we have *not* called folio_clear_dirty_for_io() on. If a task with an existing mmap-ed PTE writes (without faulting..) in this window, it can result in corruptions. If the write arrives while the checksumming or writing itself is underway, this can result in an invalid checksum and later corruption reports on read. If the write arrives after checksumming/writing is done but before the last sector dirty is cleared, then the write is present in page cache but doesn't affect the dirty tracking and will be lost when the folio is fully finished being submitted and the dirty bit is cleared. This results in losing the write even if fsync() is called. 2. For zoned submissions which are done in batch separate from the main extent_writepage() loop, we also risk csum violations for those submissions. Zoned writes are clamped to max_zone_append_size and are not aligned with folios, so a submission can span two folios. The first folio being processed in extent_write_cache_pages() will call extent_write_locked_range() which will submit the partial range of the next folio, while the rest of that folio could still be dirty. So clearing dirty on the submitted sectors doesn't call folio_clear_dirty_for_io() and we have the same issue. Since extent_write_cache_pages() skips these batch submitted folios (they are already marked for writeback from submission by the preceding folio), we must add the extra write protection in lock_delalloc_folios(). 3. For inline extents this will subtly risk losing writes that happen after/while we copy the inline extent but before we clear dirty on the folio. 4. For folios spanning EOF, mmap could tamper with the zeroed bytes past EOF and cause them to be persisted where future faults would improperly see them instead of zeros. 5. Finally, for compressed extents, we risk modifying the folios while we work on compressing them which will result in corrupted compressed data. Specifically, in run_delalloc_compressed() we queue up work to do compress_file_range() in BTRFS_COMPRESSION_CHUNK_SIZE (512K) chunks which will call btrfs_folio_clamp_clear_dirty() on the range. For non-subpage, this will always clear the whole folio, safely. For subpage, we risk a partial clear here as well. In particular, imagine a 2M folio broken up into 512K chunks of work which might start compression work on one chunk before all the chunks compress_file_range() workers have gotten far enough to finish clearing all the dirty bitmaps of the folio and getting to folio_clear_dirty_for_io(). Large folios on the edges of submission ranges are similarly at risk to be only partly cleared. This particular gap was introduced by a second patch in the same series: commit a4ef54dbb576 ("btrfs: make extent_range_clear_dirty_for_io() to handle sector size < page size cases") We cannot simply restore the call to folio_clear ---truncated---
来源: CVE Program / CVE List V5
CVSS Information
N/A
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux a4ef54dbb576032ba31a646a5ffc8a26a83cb92c ~ 074c715e0b498891c09fe7f11e1cd9d7a04699bd -
Linux Linux 6.13 -

二、漏洞 CVE-2026-89772 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-89772 的情报信息

登录查看更多情报信息。

CVE-2026-89772 其他参考 (2)

同批安全公告 · Linux · 2026-09-11 · 共 431 条

CVE-2026-89491 OCFS2集群心跳锁持有期间睡眠漏洞
CVE-2026-89477 Linux内核 SCTP 重配置空指针引用漏洞
CVE-2026-89478 sctp:移除的传输中丢弃数据块
CVE-2026-89479 内核SCTP模块关联删除后仍处理报文
CVE-2026-89480 NVMe-TCP 读取字节数异常拒绝漏洞
CVE-2026-89482 NVMe-TCP 数据长度误判漏洞
CVE-2026-89481 NVMe/TCP 主机内存泄露漏洞
CVE-2026-89483 Linux内核 NVMe驱动 逻辑错误
CVE-2026-89484 Linux内核lockd 空指针解引用漏洞
CVE-2026-89485 Linux lockd 锁释放时文件指针固定漏洞
CVE-2026-89486 IPMI 驱动 _ipmi_destroy_user 释放后使用漏洞
CVE-2026-89487 Open vSwitch 数据包丢弃逻辑缺陷
CVE-2026-89488 Open vSwitch CT limit 释放后使用漏洞
CVE-2026-89489 OpenRISC 内核 or1k_atomic 任意内存访问漏洞
CVE-2026-89500 ring-buffer 缓冲区读取页修复
CVE-2026-89497 Orangefs 调试掩码解析空格处理缺陷
CVE-2026-89498 Orangefs 双重释放漏洞
CVE-2026-89499 ring-buffer 页面交换失败时停止远程读取
CVE-2026-89496 ocfs2文件系统COW完成处理缺陷
CVE-2026-89501 ring-buffer 子缓冲区调整时未持锁漏洞

显示前 20 条,共 431 条。 查看全部 &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-89772

暂无评论


发表评论