LinuxのXFSに10年来の競合状態、root権限奪取が可能に

Linuxカーネル内部でわずかコンマ数秒の競合状態が発生することで、ごくありふれたファイルシステムのコピーオンライト操作が深刻な権限昇格へとつながっていました。

XFSファイルシステムを使用するLinuxシステムには競合状態の問題があり、権限を持たないローカルユーザーが完全なroot権限を取得できる可能性があることが分かりました。

この脆弱性は、ファイルのデータを実際にはコピーせずに複製を作成できるXFSの機能「reflink」が有効になっている、Linuxカーネル4.11以降を搭載したシステムに影響します。

Qualys Threat Research Unit(TRU)によると、reflinkが依存するファイル書き込み保護を回避する方法が存在していたとのことです。この回避策は、先週パッチが公開されるまで、2017年以降のカーネルバージョンにずっと存在していました。

「この脆弱性を利用すれば、権限を持たない一般ユーザーとして実行されているプロセスが不具合を引き起こし、XFSボリューム上の読み取り可能な任意のファイルをブロック層で上書きする能力を得ることができます」と、Qualys TRUの責任者であるSaeed Abbasi氏は、この脆弱性について解説したブログ記事で述べています。同氏はこの脆弱性を RefluXFSと名付けています。「悪用の成功率は非常に高く、しかもカーネルログには何も出力されません」

Qualysの推計では、この問題は1,640万台を超えるシステムに影響を及ぼしており、その大半はreflinkがデフォルトで有効になっているXFSを利用するエンタープライズ向けLinux環境だとしています。

競合に勝てば不具合のあるファイル操作でrootを取得

この脆弱性はCVE-2026-64600として追跡されており、reflinkされたファイルに対してXFSがコピーオンライト操作を処理する方法に起因しています。通常、元のファイルとそのreflinkクローンのように、2つのファイルが同じストレージブロックを共有している場合、XFSはデータを変更する前に新しいストレージブロックを割り当てるため、元のファイルは変更されずに済みます。

しかし、同じreflinkファイルに対して2つの書き込みが同時に開始されると競合状態が発生し、ファイルシステムが混乱して元のファイル自体を変更してしまいます。「この変更はディスク上で直接行われ、再起動をまたいで永続化する上、カーネルログには一切出力されません」とQualysはアドバイザリで説明しています。

この問題は、Linux 4.11以降、reflinkが有効化されたXFS、そして共有ファイルシステムレイアウトという3条件がすべて揃った場合に悪用可能です。攻撃者は対象ファイルへの読み取りアクセス権さえあれば、同一のXFSファイルシステム上の書き込み可能なディレクトリ配下にreflinkクローンを作成するだけで攻撃を成立させられるため、CVSSスコアは10点満点中7.8の「高」レベルに分類されています。

RefluXFSの影響を受けるLinuxディストリビューション

Qualysによると、この脆弱性は2017年にリリースされたバージョン4.11以降、すべてのメインラインおよび安定版Linuxカーネルに存在しており、特殊な権限やデフォルトから外れた設定を必要とせずに悪用可能だとしています。

影響を受けるLinuxディストリビューションには、RHEL 8、9、10、CentOS Stream 8、9、10、Oracle Linux 8、9、10、RockyおよびAlmaLinux 8、9、10、CloudLinux 8、9、10、2022年12月以降のAmazon Linux 2023およびAmazon Linux 2 AMI、Fedora Server 31以降、さらにXFSを手動で選択したDebian、Ubuntu、SUSEのインストール環境が含まれます。

Kernel Address Space Layout Randomization(KASLR)、Supervisor Mode Access Prevention(SMAP)、Supervisor Mode Execution Prevention(SMEP)といったメモリ保護機能を含む通常のカーネル強化策は、いずれも異なる攻撃対象領域を想定したものであるため、今回の脆弱性に対しては効果がありません。Qualysによれば、カーネルロックダウンを実施しても、影響を受ける経路を阻止することはできないとのことです。

「テストの結果、SELinuxはこの脆弱性の影響を受ける経路をブロックしませんでした。また、seccompプロファイルも、通常のプロファイルがそうであるようにwriteとioctlを許可している限り、障壁にはなりません」とAbbasi氏は説明しています。同氏はさらに、直ちにカーネルにパッチを適用し、完全に再起動することだけが確実な緩和策になると付け加えています。

修正パッチは7月16日にコミット「2f4acd0」としてLinuxカーネルの上流ソースツリーにマージされ、その後各Linuxディストリビューションはそれぞれがサポートするカーネルリリースへのバックポート作業を開始しています。

影響を受けるXFS環境を運用している組織は、Linuxベンダーが提供する最新のカーネルアップデートを適用し、修正済みカーネルが利用可能になり次第、対象システムを再起動することを推奨します。

本記事はNetwork Worldに最初に掲載されました。

翻訳元: https://www.csoonline.com/article/4200808/linux-xfs-has-a-decade-old-race-condition-allowing-full-root-access-2.html

ソース: csoonline.com