Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
docling-core-CVE-2026-24009 — Технический разбор и PoC для CVE-2026-24009, демонстрирующие небезопасную загрузку YAML в docling-core и практические пути смягчения последствий. | Kitploit
Инструменты/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
Анализ уязвимостейАнализ КодаЭксплуатацияСтатьи и ИсследованияОбучение и Образование
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

Технический разбор и PoC для CVE-2026-24009, демонстрирующие небезопасную загрузку YAML в docling-core и практические пути смягчения последствий.

Репозиторий
6 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-24009 — docling-core Небезопасная десериализация YAML (PoC + заметки)

Этот репозиторий содержит proof-of-concept (PoC) и простой сканер, демонстрирующие CVE-2026-24009, где docling-core может обеспечить выполнение кода при загрузке управляемого атакующим YAML при определенных условиях зависимостей.

TL;DR

Воздействие: потенциальное RCE во время разбора YAML Уязвимая цепочка (все условия обязательны):

  • docling-core >= 2.21.0 и < 2.48.4
  • PyYAML < 5.4 (поведение вышестоящего пакета, связанное с CVE-2020-14343)
  • приложение вызывает DoclingDocument.load_from_yaml(...) для недоверенного YAML

Исправление: обновите docling-core до >= 2.48.4 (переключается на yaml.SafeLoader) обновите до


Альтернативное исправление:
PyYAML
>= 5.4

Предыстория / Корневая причина

DoclingDocument.load_from_yaml() десериализует YAML-сериализованный DoclingDocument. В уязвимых версиях он загружает YAML с использованием небезопасного загрузчика (yaml.FullLoader), когда PyYAML уязвим, что позволяет вредоносным YAML-конструкторам выполнять код во время разбора (см. CVE-2020-14343 для получения дополнительной информации).


Протестированная среда (PoC)

  • ОС: 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

Это демонстрирует, что выполнение произошло во время разбора YAML, до того как DoclingDocument.model_validate(...) завершится ошибкой.


Смягчение / Проверка исправления

Смягчение 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.SafeLoader при десериализации недоверенного YAML.


Заметки о влиянии на нижестоящий docling (сопоставление зависимостей)

Хотя эта CVE находится в docling-core, наиболее распространенным потребителем является docling. Широкий диапазон зависимостей в docling сам по себе не доказывает уязвимость; важно разрешенное окружение (lockfiles / установленные пакеты) и то, используются ли пути импорта YAML.

Этот репозиторий включает collect_versions.py, который сопоставляет:

  • объявленные ограничения docling-core из pyproject.toml
  • закрепленные версии docling-core из uv.lock (или poetry.lock в более старых тегах)

Из извлеченных данных потенциально уязвимые версии docling (ограничение допускает уязвимую + lock закрепляет уязвимую):

  • >= v2.27.0 и <= v2.57.0

Это индикатор разрешения зависимостей, а не доказательство того, что стандартные рабочие процессы docling достигают load_from_yaml() для недоверенного ввода.


Содержимое репозитория (обзор)

  • repro_docling_load.py — минимальный запускатель PoC
  • check_loader.py — выводит загрузчик YAML, используемый load_from_yaml()
  • scanner/ — простой сканер на основе зависимостей (необязательная проверка прямого стока)
  • collect_versions.py — помощник для сопоставления тегов docling с закрепленными версиями docling-core
Скачать инструмент