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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
docling-core-CVE-2026-24009 — CVE-2026-24009に関する技術解説とPoC。docling-coreにおける安全でないYAML読み込みを実証し、実践的な緩和策を示します。 | Kitploit
ツール/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
脆弱性分析コード分析エクスプロイト論文と研究学習と教育
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

CVE-2026-24009に関する技術解説とPoC。docling-coreにおける安全でないYAML読み込みを実証し、実践的な緩和策を示します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-24009 — docling-core 安全でないYAMLデシリアライゼーション(PoC + メモ)

このリポジトリには、CVE-2026-24009 の概念実証(PoC)と簡単なスキャナーが含まれています。この脆弱性では、特定の依存関係条件下で攻撃者が制御するYAMLを読み込む際に、docling-core がコード実行を可能にする可能性があります。

TL;DR

影響: YAML解析中の潜在的なRCE 脆弱なチェーン(すべて必須):

  • docling-core >= 2.21.0 かつ < 2.48.4
  • PyYAML < 5.4(CVE-2020-14343 に関連する上流の動作)
  • アプリケーションが信頼できないYAMLに対して DoclingDocument.load_from_yaml(...) を呼び出す

修正: docling-core を >= 2.48.4 にアップグレード(yaml.SafeLoader に切り替え)
代替修正: PyYAML を にアップグレード

>= 5.4

背景 / 根本原因

DoclingDocument.load_from_yaml() は、YAMLシリアライズされた DoclingDocument をデシリアライズします。脆弱なバージョンでは、PyYAML が脆弱な場合に安全でないローダー(yaml.FullLoader)を使用してYAMLを読み込むため、悪意のあるYAMLコンストラクタが解析中にコードを実行できる可能性があります(詳細は CVE-2020-14343 を参照)。


テスト環境(PoC)

  • OS: Ubuntu 24.04
  • Python: 3.12.3
  • docling-core: 2.48.3(脆弱)
  • PyYAML: 5.3.1(脆弱)

再現手順(PoC)

1) 仮想環境を作成

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "docling-core==2.48.3" "PyYAML==5.3.1"

2)(任意)脆弱なローダーの確認

以下を実行:

root@kitploit:~
python check_loader.py

脆弱なバージョンでは、load_from_yaml() は以下を使用します:

root@kitploit:~
data = yaml.load(f, Loader=yaml.FullLoader)

3) PoCを実行

root@kitploit:~
python repro_docling_load.py

期待される動作:

  • repro_docling_load.py が ValidationError を発生させる(想定内)
  • ローカルマーカーファイルが作成される: /tmp/docling_cve_poc_marker

これは、DoclingDocument.model_validate(...) が失敗する前に、YAML解析中に実行が発生したことを示しています。


緩和策 / パッチ検証

緩和策 1 — docling-core のアップグレード(推奨)

root@kitploit:~
python -m pip install --upgrade "docling-core==2.48.4"
python check_loader.py
python repro_docling_load.py

期待される結果:

  • check_loader.py が yaml.SafeLoader を表示
  • PoC がYAMLコンストラクタエラーで失敗し、マーカーファイルは作成されない

緩和策 2 — PyYAML のアップグレード

PyYAML を >= 5.4 にアップグレードすると、CVE-2020-14343 に関連する上流の動作が緩和されます。

緩和策 3 — 安全な読み込みの強制

アップグレードが不可能な場合は、安全でないローダーで信頼できないYAMLを読み込まないようにしてください。信頼できないYAMLをデシリアライズする際は、yaml.SafeLoader を強制してください。


下流の docling 露出に関するメモ(依存関係マッピング)

このCVEは docling-core にありますが、最も一般的な利用者は docling です。docling の広範な依存関係範囲は、それ自体では脆弱性を証明しません。重要なのは、解決された環境(ロックファイル / インストール済みパッケージ)と、YAMLインポートパスが使用されているかどうかです。

このリポジトリには collect_versions.py が含まれており、以下をマッピングします:

  • pyproject.toml から宣言された docling-core 制約
  • uv.lock(または古いタグでは poetry.lock)から固定された docling-core バージョン

抽出されたデータから、潜在的に脆弱な docling バージョン(制約が脆弱なバージョンを許可し、ロックが脆弱なバージョンを固定)は以下の通りです:

  • >= v2.27.0 かつ <= v2.57.0

これは依存関係解決の指標であり、デフォルトの docling ワークフローが信頼できない入力に対して load_from_yaml() に到達することを証明するものではありません。


リポジトリの内容(概要)

  • repro_docling_load.py — 最小限のPoCランナー
  • check_loader.py — load_from_yaml() が使用するYAMLローダーを表示
  • scanner/ — シンプルな依存関係ベースのスキャナー(任意の直接シンクチェック)
  • collect_versions.py — docling タグを固定された docling-core バージョンにマッピングするヘルパー
ツールをダウンロード