Pathname
ライブラリ
Pathname
Pathname オブジェクトはパス名を表しており、ファイルやディレクトリそのものを表してはいません。当然、存在しないファイルのパス名も扱えます。
危険性
外部入力を扱う場合にPath traversalやlocal file inclusionなど
対処
todo
Ruby 2.5以前のPathname
Command injection in Pathname
IOクラスを利用していたためファイル名が"|"で始まる場合に外部コマンドが実行される状態であった
確認コード(Github)
code:ruby
require 'pathname'
# ruby2.5以前ではreadファイルが生成される
# ruby2.6以降ではNo such file or directoryのエラー
Pathname("|touch read").read
ruby2.6で修正
セキュリティリリースはなくアップデートの一つ