Rails Active Storageに緊急脆弱性、画像アップロード1枚でRCE(CVE-2026-66066) のサムネイル
VULNERABILITY / 脆弱性 重要度 高 2026-07-30

Rails Active Storageに緊急脆弱性、画像アップロード1枚でRCE(CVE-2026-66066)

⏱ 約 2 分 view 7 like 0 LOG_DATE:2026-07-30
目次 / TOC

「画像をアップロードさせるだけ」でシェルが取れる #

2026年7月29日、Ruby on Railsのセキュリティチームが CVE-2026-66066 を公開した。Active Storage の variant(サムネイル等の派生画像)処理が、画像処理ライブラリ libvips に未検証のアップロードをそのまま渡してしまい、未認証の攻撃者が画像を1つアップロードして variant 生成をトリガーするだけでサーバー上の任意ファイル読み取りとリモートコード実行が成立する。GitHub の採点は CVSS v4 で 9.5、研究者コミュニティは "KindaRails2Shell" と呼んでいる。

厄介なのは前提条件の薄さだ。Active Storage の direct upload はデフォルトで認証なしに使える設計のため、管理画面もログインフォームも無いアプリケーションですら影響を受けうる

露呈しうる情報

Rails プロセスの環境変数ごと読めるため、secret_key_base・マスターキー・DBパスワード・S3等クラウドストレージの認証情報・APIトークンが根こそぎ漏れる。

画像アップロード1枚でRCEに至るまでの4ステップ図解
未認証の画像アップロードがvariant生成を経てRCEに至る流れ

なぜこの脆弱性クラスは繰り返すのか #

これは目新しい攻撃ではない。2016年に ImageMagick を揺るがした「ImageTragick」と本質的に同じ構造で、「画像処理ライブラリに未検証の入力をそのまま渡す」パターンが繰り返し牙を剥いている。libvips 側は安全性未検証のローダーを無効化する仕組みを持っていたが、Active Storage 側がそれを呼び出していなかった。画像は「ただのデータ」ではなく「パーサーに食わせるコード」だという認識が、フレームワーク層でも徹底されていなかったことになる。

影響を受けるのは activestorage 7.2.3.2 未満、8.0系は8.0.5.0以下、8.1系は8.1.3.0以下(いずれもデフォルト設定)。6.x系もvipsプロセッサを手動有効化していれば対象になる。

CVE-2026-66066の影響バージョンと対応状況の一覧図解
影響を受けるactivestorageのバージョン範囲と対応状況

対応: アップデートだけでは終わらない #

修正版は 7.2.3.2 / 8.0.5.1 / 8.1.3.1。ただし libvips 8.13 以上でないとパッチが機能しないため、gemだけでなくOS側のlibvipsバージョンも要確認だ。

この脆弱性はアップロード1回で秘密鍵一式を読める性質上、侵害の痕跡がなくても「既に読まれた」前提で動くのが定石。secret_key_base やマスターキー、DB・クラウドストレージの認証情報を含む全シークレットのローテーションが推奨されている。パッチを当てて安心せず、variant生成周りの異常なアップロード履歴も点検したい。

𝕏 ポスト B! はてブ
Post Share LINE B!

COMMENTS 0

まだコメントはありません。最初のコメントを投稿しよう。

コメントを投稿