Rails Active Storage+ImageMagick の任意ファイル書き込み:まず更新、だめなら Certified Patch
Active Storage が mini_magick で未信頼アップロードを解析すると、危険な ImageMagick コーダー経由で任意ファイル書き込み(条件次第で読み取り→RCE)になる(GHSA-f3w6-w445-fwh9、CVSS 9.8)。Rails 8.1.4.1/8.0.5.2 へ上げ、すぐ上げられないなら Socket の無料 Certified Patch を当てる。
いつ使うか
- Rails で Active Storage を使い、
config.active_storage.variant_processor = :mini_magickのとき - 未信頼ユーザーからのファイルアップロードを受けているとき
- ImageMagick のセキュリティポリシーで危険コーダーをまだ塞いでいないとき
何が起きるか
- Active Storage は添付時に自動解析するため、別途プレビューや変換を呼ばなくても到達する。
- ImageMagick の一部コーダーはアップロード画像以外のファイルに触れる。制限なしだと任意書き込みになり、Disk サービス利用時は
secret_key_baseや credentials などプロセスが読めるファイルの露出→RCE もありうる。 - 2026-11-04 の Rails 更新は本件を含む 21 件を修正。8.0 系のセキュリティサポートは 2026-11-07 で終了予定なので 8.1 系への移行も計画する。
対応
- Gemfile を修正版へ。
gem "rails", "8.1.4.1" # 8.0 系なら 8.0.5.2 bundle update rails :mini_magick利用時は MiniMagick 5.1 以降必須(古いと起動時例外)。PDF/PostScript 処理がある場合は、同梱の厳しい ImageMagick ポリシーに合わせて設定を見直す。- すぐ上げられない場合のつなぎ(Socket・非顧客も無料):
socket patch add GHSA-f3w6-w445-fwh9パッチは当該 GHSA のみ。他の 20 件はカバーしない。
- Disk サービスを使っていたアプリは、漏えい前提で credentials・DB・接続先鍵をローテーションする(Rails 勧告どおり)。
- 長期はサポート中の Rails 系列へのアップグレード。Certified Patch は時間稼ぎ。
注意
- 脆弱なのは「mini_magick+未制限の ImageMagick ポリシー+未信頼アップロード」の揃ったとき。該当設定かを先に棚卸しする。
- 攻撃手順は書かない。防御は更新・ポリシー・アップロード面の最小化。