🎉

[Feature #19630] Kernel.#open に | から始まる文字列を渡せないようにする

2024/05/05に公開

[Feature #19630] [RFC] Deprecate Kernel#open("|command-here") due to frequent security issues

  • Kernel#open の引数に | からはじまる文字列を渡すと | 以降の文字列が外部コマンドとして実行される
# mkdir hoge が外部コマンドとして実行される
open("|mkdir hoge")
open("|echo ok")
# Ruby 3.3 => warning: Calling Kernel#open with a leading '|' is deprecated and will be removed in Ruby 4.0; use IO.popen instead
# Ruby 4.0 => error
  • さすがにこれを意図的に使ってるコードはないと思いたい…
GitHubで編集を提案

Discussion