GNU fileutils 再帰ディレクトリの削除を引き起こす競合状態 | ScanNetSecurity
2024.04.19(金)

GNU fileutils 再帰ディレクトリの削除を引き起こす競合状態

[翻訳:関谷 麻美]
2002年3月13日

国際 海外情報
[翻訳:関谷 麻美]
2002年3月13日

概要
 GNU File Utilities は、 GNU オペレーティング・システムの基本ファイル操作ユーティリティだ。fileutils GNU パッケージに含まれる様々なユーティリティの競合状態は、ローカルユーザが root 権限を持ってファイルシステム全体の削除を可能にする。

詳細
脆弱なシステム
fileutils 4.1 安定バージョン
fileutils 4.1.6 開発バージョン

 サブディレクトリのコンテンツを削除した後、ディレクトリ・ツリーの再帰的削除の間に上位のディレクトリに戻るため、セキュリティを考慮しない
chdir("..") syscall を実行する。

'/tmp/a/b/c' ディレクトリ・ツリーを削除する'rm -fr /tmp/a' の例
(より読みやすくするため、strace 出力を単純化した)

chdir("/tmp/a") = 0
chdir("b") = 0
chdir("c") = 0
chdir("..") = 0
rmdir("c") = 0
chdir("..") = 0
rmdir("b") = 0
fchdir(3) = 0
rmdir("/tmp/a") = 0

 現行のディレクトリが /tmp/a/b/c に変更された後、競合状態が発生する。

/tmp/a/b/c ディレクトリを /tmp/c に移る場合、後に続く二つの chdir("..") syscalls は、ルートディレクトリ / に移る。そして、十分な権限を持つ場合(すなわち、root ユーザにより呼び出される場合)rm は全体のファイルシステムからファイルを削除し始める。

 この競合状態のタイムフレームは、ディレクトリ構造がどのくらい複雑かに依存する。

 同じ問題は、ソースおよび宛先ディレクトリが異なるファイルシステムにある場合に mv ユーティリティにも影響を与え、宛先にコピーを作成した後それらは削除される。

影響
 高い権限を持たないユーザが、ユーザのディレクトリの削除操作を検出するデーモンプログラムを実行し、サービス使用拒否を引き起こす競合状態を利用する恐れがある。

修正プログラム
 2002年3月7日、GNU fileutils の開発者にこの情報を通知し、2002年3月9日、この脆弱性を修正するパッチがリリースされた。パッチは、最新の 4.1.6 開発バージョン用だ。

追加情報
iSEC Security Research の Wojciech Purczynski がこの情報を提供した。
[情報提供:SecuriTeam]
http://www.securiteam.com/

《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×