Perl 5.26ではモジュールの検索パスである@INCの先頭からカレントディレクトリ「.」が削除される。セキュリティ対策のためという説明があるのだけれど、実際にどんな場面で危険があるのかということを考えてみた。 他のユーザーが書き込み可能なディレクトリをカレントディレクトリにした場合が危ない たとえば次のスクリプト(test.pl)を考えてみよう。 chdir '/tmp'; require File::Path; このスクリプトは「/tmp」というディレクトリにカレントディレクトリをまず変更している。 ここで重要なことは「/tmp」というディレクトリは、他のユーザーも読み書きできるということだ。 他のユーザーが、書き込み可能であるということは「Find/Path.pm」というファイルを置くことができるということだ。(参考:File::Path) モジュールの読み込みパスの先頭にカレント