注目★★★★★GitHub Advisory
ArcadeDB のトリガースクリプト、java.lang.* アクセス許可で OS コマンド実行脆弱性
30秒で把握
- 1ArcadeDB の ScriptTriggerExecutor が java.lang.* パッケージを許可し UPDATE_SCHEMA 権限でコマンド実行 (RCE) 可能
- 2Java.type() でホスト Runtime アクセス可能・リフレクション拒否リストが機能せず・トリガー作成時に実行
- 3修正は java.lang.* を許可リストから削除・@HostAccess.Export 明示に置換・トリガー権限を UPDATE_SECURITY に昇格
要約
ArcadeDB の ScriptTriggerExecutor が allowedPackages に java.lang.* を含めており、UPDATE_SCHEMA 権限を持つユーザーが Java.type() でホスト Runtime にアクセスし OS コマンド実行 (RCE) を可能にしている。トリガースクリプト作成時に Java.type() を使って ProcessBuilder や Runtime.exec() を呼び出され、リフレクション拒否リストが java.lang.* ホスト検索をブロックしないため、ユーザーが CREATE TRIGGER で任意スクリプトを実行させるとコマンド実行される。修正は java.lang.* を許可リストから削除し、ホスト相互運用が必要な場合は明示的な @HostAccess.Export API に置き換え、トリガー作成権限を UPDATE_SECURITY に昇格させること。
あなたへの影響
UPDATE_SCHEMA 権限を持つスキーマ管理者が OS コマンド実行可能な状態が放置されているため。
推奨:ArcadeDB を本番環理するチームは最新版への緊急更新を検討し、UPDATE_SCHEMA 権限の付与対象を信頼できるユーザーのみに制限してください。