该缺陷是两个内核辅助函数 xfs_reflink_fill_cow_hole 和 xfs_reflink_fill_delalloc 中的 竞态条件 。当这些函数循环获取 XFS inode 锁(ILOCK)以获取事务时,数据分支和 CoW 分支的映射都可能变得过时 。虽然通过 xfs_find_trim_cow_extent 刷新了 CoW 分支映射,但 数据分支映射在下次写入操作之前不会被刷新 。这一疏忽意味着,并发写入可以完全绕过写时复制过程,直接修改攻击者本不应能够写入的共享数据块 。
拥有本地普通账户的攻击者可以利用此漏洞 覆盖他们能读取的任何文件,包括受保护的系统文件,如 /etc/passwd、/etc/shadow 或 SSH 的 authorized_keys。即使在运行 SELinux 强制模式的系统上,该漏洞也能成功利用 。最关键的是,磁盘上的修改 在系统重启后依然存在 。
该漏洞在 Linux 内核 4.11 版本(2017 年 2 月)由提交 3c68d44a2b49 引入,并存在于此后所有的主线及稳定内核中 。它要求目标 XFS 文件系统启用了 reflink 特性,自 2019 年以来,该特性已是 mkfs.xfs 的默认设置,这意味着大多数现代 XFS 卷都受到影响 。
根据 Qualys 和 CERT-EU 的报告,以下发行版已直接证实存在漏洞 :
其他运行受影响范围内核的发行版也默认受到影响,包括 Debian、Arch Linux、Rocky Linux、AlmaLinux 以及嵌入式 Linux 系统 。
立即安装内核补丁是唯一可靠的修复方法。 目前没有有效的缓解措施——该漏洞不需要非默认配置,SELinux 无法阻止,且利用过程中不会产生内核日志输出 。唯一的临时缓解措施是在完成补丁修复之前,限制受影响系统上对 XFS 文件系统的直接 I/O 写入访问 。
上游内核补丁已于 2026 年 7 月 16 日 合并(提交 2f4acd0:"xfs: resample the data fork mapping after cycling ILOCK")。该补丁通过查询序列计数器在 ILOCK 循环期间是否变化来重新采样数据分支映射,确保不会使用过时的映射进行下一次写入 。
使用受影响 Linux 系统的组织应立即应用厂商安全更新,并重启系统以确保激活修补后的内核 。由于该漏洞影响范围极广,且无需特殊权限即可稳定利用,它对任何多租户或共享用户的 Linux 环境构成了严重风险。