間違ったプログラムを実行する可能性があります。誰かがあなたに彼らのプログラムを実行させることができます。
-execdir
アクションが見つかったファイル(複数可)を含むディレクトリからあなたのコマンドを実行します。とき$PATH
のような相対パス、含まれている.
かで始まらないものを/
、-execdir
ファイルが見つかったディレクトリ(または別のディレクトリには、それに関連した解決された)ので、安全ではまた、あなたがしようとしているものと同じ名前の実行可能ファイルを含むことができ、走る。信頼できない可能性のある実行可能ファイルは、代わりに実行されます。
これは別のユーザーによって意図的に悪用され、実行しようとしているプログラムの代わりに、プログラムを実行させ、データセキュリティの侵害や侵害を引き起こす可能性があります。または、それほど頻繁ではありませんが、問題を起こそうとする人がいなくても、誤って誤ったプログラムが実行される可能性があります。
PATH
環境変数のすべてが絶対パスである場合、検索および-execdir
ingしているディレクトリがに含まれていても、このエラーは発生しませんPATH
。(これが機能することを確認しました。)相対ディレクトリはないが、$PATH
このエラーが引き続き表示されると思われる場合は、の出力を含む詳細で質問を更新してくださいecho "$PATH"
。
具体例。
何がうまくいかないかの例として、
- アリスは
.
、自分の名前の前$PATH
に何もcd
付けずに、どのディレクトリでもプログラムを実行できるようにしたいので、彼女の中にいます。./
。
- アリスの熱狂的なイブは
/home/eve/shared
アリスと共有しました。
- アリスは、
.c
イブが彼女と共有したファイルの統計(行、単語、バイト)を求めています。
アリスが実行されます:
find ~eve/shared -name \*.c -execdir wc {} \;
アリスにとって残念なことに、イブは独自のスクリプトを作成し、名前を付けwc
、実行可能ファイル(chmod +x
)を設定し、の下のディレクトリの1つに密かに配置しました/home/eve/shared
。Eveのスクリプトは次のようになります。
#!/bin/sh
/usr/bin/wc "$@"
do_evil # Eve replaces this command with whatver evil she wishes to do
そのため、Aliceがfind
with -execdir
を使用してwc
Eveが共有しているファイルを実行し、Eveのカスタムwc
スクリプトと同じディレクトリ内のファイルにアクセスすると、Eveはwc
実行されます。Aliceのすべての特権があります。
(巧妙であるため、Eveはwc
スクリプトをシステムのラッパーとして機能させたため、wc
アリスは何かが間違っていること、つまりdo_evil
実行されたことさえ知りません。 )
find
これを防ぐ方法。
find
相対ディレクトリが含まれる-execdir
場合$PATH
にアクションの実行を拒否することにより、このセキュリティ問題の発生を防ぎます。
find
特定の状況に応じて2つの診断メッセージを提供します。
場合.
である$PATH
(あなたが見てきたように)それが言うそして、:
find: The current directory is included in the PATH environment variable, which is insecure in combination with the -execdir action of find. Please remove the current directory from your $PATH (that is, remove "." or leading or trailing colons)
.
特に一般的であるため、ケースに特別なメッセージが含まれている可能性があります。
.
--say、foo
- 以外の相対パスが表示され$PATH
、で実行するfind
と-execdir
、次のようになります。
find: The relative path `foo' is included in the PATH environment variable, which is insecure in combination with the -execdir action of find. Please remove that entry from $PATH
相対パス$PATH
をまったく含めない方が良いでしょう。
ディレクトリを自動的に変更するユーティリティを使用すると、.
他の相対パスが含まれるリスク$PATH
が特に高くなりfind
ます-execdir
。このため、この状況では使用できません。
ただし、特に.
に相対パスを$PATH
含めることは本質的に危険であり、とにかく回避するのが最善です。上記の例の架空の状況を考慮してください。実行する代わりにfind
、アリスは単にcd
sを~eve/shared/blah
実行しwc *.c
ます。blah
Eveのwc
スクリプトが含まれている場合do_evil
、Aliceとして実行されます。