
CVE-2019-5420用のPythonエクスプロイトスクリプト。Ruby on Railsの署名済みセッションAES GCM鍵の総当たり攻撃を標的とし、開発/ステージング環境でのリモートコード実行を達成する。
Ruby-on-Rails は、development、test、production の3つの異なる環境で実行できます。当然、development や test で実行されているコードをインターネット上に公開すべきではありませんが、実際には(ステージング環境などで)よく発生します。
Ruby-on-Rails は「署名付きセッション (signed-sessions)」を使用して、アプリケーションを簡単にスケールできるようにしています。時間の経過とともに、セッションの処理方法は変化しました。バージョン 5.2.2 以降、セッションは JSON エンコードされたデータであり、デフォルトで AES GCM (aes-256-gcm) を使用して保護されています。
CVE-2019-5420 は実際には非常に単純です。セッションの暗号化に使用されるキーは、development モードではアプリケーション名に基づいているため、推測(またはブルートフォース)される可能性があります。この問題は、勧告によれば、コード実行 (RCE) につながる可能性があります。
シンプルな pyton スクリプトは上記の機能を悪用します。