当初同じ内容かなと思ったら、RailsとJSON gemのセキュリティ修正は別物でした。
Railsセキュリティ修正
Rails 6.0.2.2 and 5.2.4.2 have been released! They contain an important security fix, so please check them out! More info is here: https://t.co/hsZ0i9BLxS
❤️
— Ruby on Rails (@rails) March 19, 2020
影響を受ける可能性があるのはActionViewヘルパーのescape_javascript
メソッドとそのエイリアスであるj
メソッドとのことです。変更点を見た限りでは、バッククォートと$
がエスケープされていなかったのを修正したようです。
- API:
escape_javascript
-- ActionView::Helpers::JavaScriptHelper(エイリアスのj
も同様)
RubyのJSON gemセキュリティ修正
"RubyにバンドルされているJSON gemに、安全でないオブジェクトの生成を可能とする脆弱性が報告されました。 この脆弱性は CVE-2020-10663 として登録されています。 ユーザのみなさんにはJSON gemを更新することを強くおすすめします。"https://t.co/nICs8KopyN
— Masayoshi Takahashi (@takahashim) March 21, 2020
Rubyそのものではなく、RubyにバンドルされているJSON gemの追加修正です。以下のバージョンが影響を受ける可能性があるとのことです。昨年12月12日にリリースされたJSON gem 2.3.0(Ruby 2.0以降が対象)では修正済みとのことなので、この日より後にJSON gemを2.3.0にアップデートしたかどうかをチェックしてみましょう。
- JSON gem 2.2.0およびそれ以前のバージョン
おまけ: Rails 5アプリをアップグレードした
オレオレRailsアプリを5.2.4.1から5.2.4.2にアップグレードしました。
アプリのJSON gemは既に2.3.0になっていたのでこちらは変更しませんでした。
- GemfileでRailsバージョンを5.2.4.2に変更
bundle install
を実行
実際はbundle install
すると依存関係でいくつかつっかかったので以下を実行しました。これはアプリによって異なると思います。
$ bundle update activemodel actionpack railties activerecord