- Ruby / Rails関連
Railsセキュリティ修正リリース: 5.2.1.1、5.1.6.1、5.0.7.1、4.2.11(Active JobとActive Storage)
Railsの新バージョンがリリースされています。脆弱性対応とのことなので、早めにアップデートした方が良さそうです。
Rails 4.2.11, 5.0.7.1, 5.1.6.1 and 5.2.1.1 have been released! | Riding Rails https://t.co/fE1HyGyoM8— Junichi Ito (伊藤淳一) (@jnchito) November 28, 2018
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
同記事より大意