Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kafka-connect-filestream-win — Kafka Connect 4.3.1 - 高 - Windows FileStream クラスパス残留 - 未認証のファイル読み書き | Kitploit
ツール/GitHubGitHub/abraxas/kafka-connect-filestream-win
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集セキュリティ仮想化ペネトレーションテスト設定ミスラボと実践
GitHub
abraxas/kafka-connect-filestream-win

kafka-connect-filestream-win

Kafka Connect 4.3.1 - 高 - Windows FileStream クラスパス残留 - 未認証のファイル読み書き

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - kafka-connect-filestream-win

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  kafka-connect-filestream-win

kafka-connect-filestream-win

Apache Kafka Connect 4.3.1 (26b251a) - Apache Software Foundation

KAFKA-13748 により、FileStream は Unix の Connect CLASSPATH から除外され、未認証の REST がローカルファイルを開けなくなりました。しかし Windows のランチャーにはこの除外が適用されていません。tarball には依然として connect-file が libs/ に同梱されています。kafka-run-class.bat はそこにあるすべての jar を連結します。

Windows で起動したワーカーに対する未認証の POST /connectors により、Connect UID がアクセス可能なファイルの読み取りと追記が行われます。

IDCVE 未採番
CWECWE-552, CWE-1188
CVSSHigh: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
製品Apache Kafka Connect
影響を受けるバージョン4.3.1 (26b251a); Windows の bin/windows/kafka-run-class.bat。Unix の .sh はすでに connect-file を除外しています。
認証未認証の Connect REST (デフォルト listeners=http://:8083、rest.extension.classes なし)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

同梱の Windows .bat ファイルで起動したワーカー上の Connect REST にブラウザまたは curl でアクセスします。FileStream ソースを作成します。ワーカーは file に指定した任意のパスを開き、そのバイト列を Kafka トピックにプロデュースします。FileStream シンクを作成します。ワーカーは file に指定した任意のパスを作成または追記します。許可リストはありません。

Unix のランチャーはすでに connect-file.*.jar を除外しています。同じ JSON を素の connect-distributed.sh に対して実行すると 400: unknown connector となります。デフォルトの apache/kafka Docker は Linux ブローカーです。この残存物は Windows の CLASSPATH です。

発見の経緯

まず Kafka の CVE リストを読みました: JAAS Jndi/Ldap、OAUTHBEARER URL 許可リスト、DefaultJwtValidator、ConfigProvider、FileStream の公開 JIRA。Unix の kafka-run-class.sh には依然として除外設定があります:

regex="(-(test|test-sources|src|scaladoc|javadoc)\.jar|jar.asc|connect-file.*\.jar)$"

cc_pkg も file を省略しています。次に Windows 版を開きました:

for %%p in (api runtime file json tools) do (
	for %%i in ("%BASE_DIR%\connect\%%p\build\libs\connect-%%p*.jar") do (
		call :concat "%%i"
	)
)
rem Classpath addition for release
for %%i in ("%BASE_DIR%\libs\*") do (
	call :concat "%%i"
)

build.gradle は依然として connect-file を libs/ にコピーしています。ドキュメントには FileStream はデフォルトの CLASSPATH に含まれないと書かれています。その記述は .sh については正しいです。

Doyensec は 2022 年にこのクラスについて書いています。KAFKA-13748 / PR 11908 が Unix 向けの修正でした。.bat は更新されていません。

すでに記録済みの誤った道: Wine、macOS での .bat の実行、plugin.path を穴とみなすこと (両ワーカーで空です)、Linux Docker がこのバグだと主張すること、Unix での 201 を SUCCESS と解釈すること。見せかけ: リバースシェル。判定基準は Unix の 400 と、シンクファイル内の証拠行です。

ラボ

cd lab
./run.sh

Unix REST 127.0.0.1:18083 は素の connect-distributed.sh です。Windows シミュレーション 127.0.0.1:18084 はフィルタリングされていない libs/*、つまりリリース版 .bat の libs\* ループです。Wine ではありません。ブローカーは compose ネットワーク上の apache/kafka:4.3.1 です。ループバックにバインドしてください。

unix-filestream=absent unix-post=400
win-filestream=present win-source=201 win-sink=201 pwned=yes
SUCCESS kafka-connect-filestream-win ... KAFKA-CONNECT-FILESTREAM-WIN-WITNESS

修正方法

kafka-run-class.bat に、.sh がすでに持っているのと同じ connect-file 除外を適用してください。gradle-from-source の for %%p in (api runtime file json tools) ループから file を削除してください。意図的に plugin.path を設定する人のために jar の同梱は続けてください。

参考資料

  • github.com/apache/kafka タグ 4.3.1 (26b251a451ce941d3d7a55e6487bcb7f16b5ad48)
  • bin/windows/kafka-run-class.bat · bin/kafka-run-class.sh
  • FileStreamSourceTask.java · FileStreamSinkTask.java
  • KAFKA-13748 · PR 11908
  • Doyensec 2022 Kafka Connect FileStream advisory
ツールをダウンロード