Ruby 4.0で単一のMarshal.loadからRCEを実現するユニバーサルガジェットチェーン

Ruby 4.0 Universal RCE Deserialization Gadget Chain

Ruby 4.0で単一のMarshal.loadからRCEを実現するユニバーサルガジェットチェーン

2026年8月、OpenAIがAIエージェント群によるRuby(JRuby)の非正規化を悪用したクラスタ乗っ取りを開示。これを受け、elttamのLuke Jahnke氏は、Ruby 4.0.6で動作する新しいユニバーサルRCEデシリアライゼーションガジェットチェーンを公開した。このチェーンは、単一のMarshal.loadをコマンド実行に変換する。3.4系で使えたガジェットの多くはRubyGemsの修正で無効化されたが、Gem::Specification.loadのeval利用や、Gem::StubSpecificationのhash呼び出し、Timeのデシリアライゼーション時のto_str呼び出しなど、新たなガジェットを組み合わせて突破する。

このトリガーは、メンテナーが静かに修正できるニッチなmarshal_loadオーバーライドではなく、オブジェクトのハッシュ化とデシリアライゼーション中のHash再構築という、言語の2つの基本的な機能の相互作用である。

同じ日のその他の記事

2026-08-14