この脆弱性の根本は、カーネル内部の2つのヘルパー関数 xfs_reflink_fill_cow_hole と xfs_reflink_fill_delalloc に存在するレースコンディションです 。これらの関数がトランザクションを取得するためにXFSのi-nodeロック(ILOCK)を解放/再取得する際、データフォークとCoWフォークの両方のマッピング情報が古くなる(ステイルになる)可能性があります 。CoWフォークのマッピングは xfs_find_trim_cow_extent によって更新されますが、データフォークのマッピングは更新されません 。このため、次の書き込み処理が行われる際に、本来書き込むべきでない共有データブロックに対して、CoW処理をバイパスして直接書き込まれてしまうのです 。
攻撃者はローカルの一般ユーザーアカウントを使ってこの脆弱性を悪用し、読み取り可能なあらゆるファイルを上書きできます。これには /etc/passwd や /etc/shadow、SSHの authorized_keys などの保護されたシステムファイルも含まれます。この攻撃は、SELinuxがEnforcingモードで動作しているシステムでも有効です 。さらに、ディスク上への書き換えはシステムの再起動後も持続します 。
この脆弱性は、Linuxカーネルバージョン4.11(2017年2月リリース)にコミット 3c68d44a2b49 によって混入し、以降のすべてのメインラインおよび安定版カーネルに存在します 。攻撃が成立するには、対象のXFSファイルシステムに reflink 機能が有効である必要があります。reflinkは2019年以降、mkfs.xfs のデフォルト設定となっており、最新のXFSボリュームのほとんどが影響を受けます 。
QualysおよびCERT-EUの報告によると、以下のディストリビューションで脆弱性が確認されています :
これらの他にも、Debian、Arch Linux、Rocky Linux、AlmaLinux、組み込みLinuxビルドなど、影響範囲のカーネルを搭載するディストリビューションは潜在的に対象となります 。
唯一の確実な対応策は、即座にカーネルパッチを適用することです。 実用的な回避策は存在しません。本脆弱性は特別な設定変更を必要とせず、SELinuxではブロックできず、さらに攻撃中にカーネルログに痕跡を残しません 。唯一の部分的な緩和策としては、パッチが適用されるまで、影響を受けるシステム上のXFSファイルシステムに対するdirect-I/O書き込みアクセスを制限することが挙げられます 。
上流カーネルへの修正パッチは、2026年7月16日にマージされました(コミット 2f4acd0:「xfs: resample the data fork mapping after cycling ILOCK」)。この修正は、ILOCKサイクルをまたぐ際にシーケンスカウンターが変化した場合、データフォークのマッピングを再サンプリングすることで、古いマッピングが次の書き込みに使用されるのを防ぎます 。
影響を受けるLinuxシステムを運用している組織は、直ちにベンダーのセキュリティアップデートを適用し、修正済みカーネルが有効になるよう再起動を実施する必要があります 。本脆弱性は非常に広範なインストールベースに影響し、特別な権限なしで確実に悪用可能であるため、マルチテナント環境や複数ユーザーが存在するLinux環境にとっては極めて深刻なリスクとなります。