「画像を1枚アップロードするだけ」でサーバが落ちる #
Ruby on RailsのActive Storageに、未認証の攻撃者が任意ファイル読み取りからリモートコード実行(RCE)まで到達できる脆弱性 CVE-2026-66066 が公表された。CVSSv4スコアは9.5。研究者はこの攻撃チェーンを「KindaRails2Shell」と名付けている。JPCERT/CCはエクスプロイトコードの公開も確認しており、既に検証・悪用の段階に入っている。
攻撃の起点は地味だ。Active Storageの直接アップロード機能に、拡張子を偽装したファイルを送りつける。中身はMATLAB形式(MAT 7.3、実体はHDF5コンテナ)で、画像処理ライブラリlibvipsの「external file list」機能を悪用し、サーバ上の任意パスのバイト列を画像のピクセルとして読み出させる。libvipsの「unfuzzed」ローダを無効化していなかったのが根本原因だ。

奪った secret_key_base があれば署名済みCookieの偽造やGlobalIDの改ざんが可能になり、Marshalの逆シリアル化にすら頼らない経路でRCEに到達する。攻撃者は認証すら不要な点が深刻度を押し上げている。
対象は activestorage 7.2.3.2未満、8.0系は8.0.5.1未満、8.1系は8.1.3.1未満(vipsプロセッサを有効にした6.x系も含む)。修正版への更新に加え、VIPS_BLOCK_UNTRUSTED 環境変数の設定やruby-vips 2.2.1以上での Vips.block_untrusted(true) 呼び出しも緩和策になる。ファイルアップロードは定番の攻撃面だが、「画像処理ライブラリの内部仕様」まで踏み込んで攻撃チェーンを組む手口は防御側の死角になりやすい。エクスプロイトが出回っている以上、パッチ適用と併せて漏えい前提でのシークレットローテーションを急ぐべきだ。
COMMENTS 0
まだコメントはありません。最初のコメントを投稿しよう。