findのアクションには,直接影響するものがあります.これには
-execと-deleteが含まれます.しかし,-printの明示的
または暗黙の使用も一般的で,findは間違ったファイル名のリストを生
成し,セキュリティの問題になり得ます.例えば,ファイルを削除するために
findが生成したファイルのリストを考えてみてください.
我々は通常,findのコマンドラインはファイルの選択の基準と,ユーザ
が考えているアクションを表現していると仮定します – つまり,コマンドラ
インは“信用できる”データだということです.
セキュリティの分析の観点から,findの外部は正しくありません.つま
り,出力にはユーザがコマンドラインで指定した基準にマッチしたファイルの
名前だけが含まれているべきです.これを,-execと-deleteア
クションに適用します.これらも出力の一部だと考える人もいます.
一方,ファイルシステムの内容は他の人も操作可能なので,我々はこれを“信
用できない”データだとみなします.つまり,findコマンドラインは,
信用できないファイルシステムの内容を,出力ファイルの正しいリストに変換
するフィルタであることを暗示しています.
ファイルシステムは,一般的に,findの検索中に変更されます.実際に,
findがセキュリティの問題となる可能性のほとんどは,この問題にある
程度関連します.
競合状態は,(例えば) findに渡されるアクションの順番に関連するセ
キュリティの問題に分類され,それ以外が重要です1.
一般的に,普通は影響するはずがないファイルに対して,攻撃者が期待するア
クションでファイルやディレクトリの移動や削除を行います.また,このよう
なの攻撃は,findに,普通は検索されない(例えば,-pruneアク
ションで抑止)ファイルシステムの一部を検索するようにしむけます.