Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Railsセキュリティ修正リリース: 5.2.1.1、5.1.6.1、5.0.7.1、4.2.11(Active JobとActive Storage)

Railsセキュリティ修正リリース: 5.2.1.1、5.1.6.1、5.0.7.1、4.2.11(Railsリリース情報より)

Active JobとActive Storageが影響を受けます。セキュリティアップデートはRails 5.x系と4.2系が対象なので、それより古いバージョンのRailsはできるだけ早急にアップグレードすることを推奨します。

どちらの脆弱性についても、アップグレード版の他に回避用のモンキーパッチ(コードまたはファイル形式)も示されています。詳しくは各Googleグループをご覧ください。

1. Active Jobの脆弱性

攻撃者が巧妙に仕込んだユーザー入力を用いると、GlobalIdを用いてActive Jobをデシリアライズし、本来アクセスできてはならない情報にアクセスできてしまう可能性がある。
以下のようなコードが脆弱性を持つ。

    MyJob.perform_later(user_input)

本脆弱性の影響を受けるバージョンを実行している全ユーザーは、ただちにアップグレードするか、いずれかの回避方法を用いること。
同記事より大意

参考: rails/globalid

2. Active Storageの脆弱性

ActiveStorageで生成された書名済みダウンロードURLによって、Google Cloud Storage(GCS)サービスや同Diskサービスに含まれるcontent-dispositionパラメータやcontent-typeパラメータを攻撃者が改変できる可能性がある。これは、特殊な細工を施したHTMLファイルをアップロードして送信したりインライン実行したりするのに利用可能である。cookie bombingなどの攻撃手法や特殊な細工を施したAppCacheマニフェストを併用することで、攻撃者が特定のストレージパス内にあるprivateな書名済みURLへのアクセスを取得できる可能性がある。

この問題の影響を受けるリリースを実行する全ユーザーは、ただちにアップグレードするか、いずれかの回避方法を適用すること。Google Cloud Storageを利用している場合は、以下を実行して既存のblobをアップデートすることも推奨される。

ActiveStorage::Blob.find_each do |blob|
  blob.send :update_service_metadata
end

同記事より大意

関連記事

Railsアプリで実際にあった5つのセキュリティ問題と修正方法(翻訳)

Ruby 2.5.2→2.5.3/2.4.5/2.3.8リリース(脆弱性修正)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。