次: Security Considerations for locate, 前: Security Considerations for find, 上: Security Considerations
xargs
のセキュリティの検討find
の`-print'による競合状態の影響の記述は,find
の開
始後かつxargs
がすべてのアクションを完了する前に攻撃者がファイル
システムを変更する可能性がある場合,xargs
でセキュリティを高くす
ることが不可能なことを示しています.
しかし,攻撃者がリアルタイムでファイルシステムにアクセスできない場合で
さえも,セキュリティの問題が他にも存在しています.第一に,攻撃者がファ
イルシステム上に,自分が選んだ名前でファイルを作成可能な場合,
xargs
は`-0'オプションを使用しない限りセキュリティが低くなり
ます./home/someuser/foo/bar\n/etc/passwdというファイル名が存在
する場合(`\n'が改行文字を意味すると仮定します),find ...
-print
では,間違って三行に分割した行を出力するはずです.
/home/someuser/foo/bar /etc/passwd
入力に改行がある場合,xargs
はそれを無視します.このため,このファ
イルリストを元に実施されるアクションには,これがfindを実行し
ている人が期待していない/etc/passwdファイルが含まれます.攻撃者
がこの優位性を使用可能な状況も存在します.同じ状況は,ファイル名に改行
ではなく普通の空行が存在する場合も存在し,もちろん,ファイル名のリスト
には“余分な”改行は含まれていません.
この問題は,xargs
コマンドのデフォルトの動作,つまりPOSIX標準で指
定された動作の結果から回避することができません.この問題を避ける方法は,
xargs
の使用を避け,より好ましい`find -exec'や(利用可能であ
れば)`find -execdir'を使用したり,xargs
にファイル名が空白で
はなくASCIIのNUL文字で分離していると理解させる`-0'オプションを使用
することだけです.しかし,このオプションは役に立ちますが,POSIXの標準で
は必須とされていません.