
CVE-2025-69600 のコマンドインジェクションに対する概念実証エクスプロイトで、RayVentory Scan Engine rvia における getconfig、upload、inventory、oracle オプションを介したリモートコード実行を示しています。
Raynet の rvia におけるコマンドインジェクションにより、攻撃者は getconfig、upload、inventory、oracle の各オプションを介してコマンドを実行できます。
バリデーションは(設定プロパティ ForbiddenCurlChars が /etc/rvia_configuration で設定されている場合にのみ)設定ファイル /opt/rvia/rvia.cfg から URL を取得する際にのみ実行され、URL が getconfig または upload オプションに直接渡された場合には実施されません。
/opt/rvia/rvia getconfig \;command\;

内部では、以下のようにコマンドが構築されます。

oracle オプションを通じてもコマンドの注入が可能です。
このオプションは、
rviaが Java 環境を見つけられない(内部でfindコマンドが呼び出される)場合や、/opt/rvia/rvia.cfgにjavaPathsオプションが設定されていない場合に失敗する可能性があります。
この場合、/opt/rvia/rvia.cfg には javaPaths=/usr/lib/jvm/java-21-openjdk-amd64/ オプションが定義されています。
/opt/rvia/rvia oracle \;command\;

構築されたコマンドは以下のようになります。

設定ファイル(/opt/rvia/rvia.cfg)内の oracleUser および oraclePass オプションでも同様の現象が発生します。

内部で呼び出されるのは以下の通りです。

同様に、upload オプションでは、URL 指定後に実行するコマンドを指定することで注入が可能です。この場合、二重引用符のエスケープが必要であり、さらにコマンドの末尾にハッシュタグを付けて後続の引数を無視させる必要があります。
このオプションは、アップロードするインベントリファイルが
/opt/rvia/results(デフォルト)ディレクトリに存在しない場合(インベントリオプションで作成される)に失敗する可能性があります。
/opt/rvia/rvia upload \"\;command\;#

ltrace から以下の内容が確認できます。

最後に、inventory オプションも脆弱です。
/opt/rvia/rvia inventory \;command\;

内部で構築されるコマンドは以下の通りです。
