Active Storage が添付時に ImageMagick で画像解析するとき、Coder 制約がなく、細工したファイルから任意ファイルの書き込みが可能になる。添付物を Disk サービスに置いている場合は、アプリプロセスが読めるファイルの読み取りにもつながる。深刻度は Critical(CVSS 9.8)。変換・プレビュー・明示的な analyze を待たず、信頼できないユーザーがアップロードを添付するだけで攻撃経路が成立する。
影響を受けるのは次をすべて満たすアプリに限られる。
config.active_storage.variant_processor = :mini_magick(load_defaults 6.1以前の既定)- Debian / Ubuntu 同梱の ImageMagick セキュリティポリシーなど、問題の coder を既に拒否していない環境
- 信頼できないユーザーからのファイルアップロードを許可している
パッケージ activestorage の対象版は、8.1 系で 8.1.4.1 未満、および 8.0.5.2 未満。修正版は 8.1.4.1 と 8.0.5.2。Disk 保存時に漏えいしうるのは secret_key_base、マスターキー、config/credentials.yml.enc 内の秘密、ストレージ・データベース資格情報、第三者トークンなど、アプリプロセスから読める秘密全般。Remote code execution や外部システムへの横展開につながりうる。
対処:
activestorageを 8.1.4.1 または 8.0.5.2 へ上げる:mini_magick利用時は mini_magick 5.1 以上が必要(未満では起動時に例外)- Disk サービス利用中に読み取りのおそれがある場合、
secret_key_baseとアプリプロセスから読める秘密をすべてローテーションする。露出済みの秘密をフォールバックとして残さない - 即時アップグレードが難しい場合は、修正版同梱の
policy.xmlと同等の拒否規則を ImageMagick のシステムポリシーへ写す(最低限MSLcoder、Ghostscript 系 coder、gsdelegate の拒否)
修正版は ImageMagick 用セキュリティポリシーを同梱し、MiniMagick.cli_env 経由で MAGICK_CONFIGURE_PATH に載せ、MiniMagick が起動する ImageMagick プロセス全体に適用する。