Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
docling-core-CVE-2026-24009 — Analyse technique et PoC pour CVE-2026-24009, démontrant le chargement YAML non sécurisé dans docling-core et les pistes pratiques d’atténuation. | Kitploit
Outils/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
Analyse des VulnérabilitésAnalyse de CodeExploitationArticles et RechercheApprentissage et Éducation
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

Analyse technique et PoC pour CVE-2026-24009, démontrant le chargement YAML non sécurisé dans docling-core et les pistes pratiques d’atténuation.

Voir le dépôt
il y a 6 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-24009 — Désérialisation YAML non sécurisée dans docling-core (PoC + Notes)

Ce dépôt contient une preuve de concept (PoC) et un scanner simple démontrant la CVE-2026-24009, où docling-core peut permettre l'exécution de code lors du chargement de YAML contrôlé par un attaquant dans des conditions de dépendances spécifiques.

TL;DR

Impact : RCE potentielle lors de l'analyse YAML Chaîne vulnérable (toutes les conditions requises) :

  • docling-core >= 2.21.0 et < 2.48.4
  • PyYAML < 5.4 (comportement en amont associé à la CVE-2020-14343)
  • l'application appelle DoclingDocument.load_from_yaml(...) sur un YAML non fiable

Correctif : mettre à niveau docling-core vers >= 2.48.4 (bascule vers yaml.SafeLoader) mettre à niveau vers


Correctif alternatif :
PyYAML
>= 5.4

Contexte / Cause racine

DoclingDocument.load_from_yaml() désérialise un DoclingDocument sérialisé en YAML. Dans les versions vulnérables, il charge le YAML à l'aide d'un loader non sécurisé (yaml.FullLoader) lorsque PyYAML est vulnérable, permettant à des constructeurs YAML malveillants d'exécuter du code pendant l'analyse (voir CVE-2020-14343 pour plus d'informations).


Environnement testé (PoC)

  • OS : Ubuntu 24.04
  • Python : 3.12.3
  • docling-core : 2.48.3 (vulnérable)
  • PyYAML : 5.3.1 (vulnérable)

Reproduction (PoC)

1) Créer un environnement virtuel

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) (Facultatif) Confirmer le loader vulnérable

Exécutez :

root@kitploit:~
python check_loader.py

Dans les versions vulnérables, load_from_yaml() utilise :

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

3) Exécuter le PoC

root@kitploit:~
python repro_docling_load.py

Comportement attendu :

  • repro_docling_load.py lève une ValidationError (attendue)
  • un fichier marqueur local est créé : /tmp/docling_cve_poc_marker

Cela démontre que l'exécution a eu lieu pendant l'analyse YAML, avant que DoclingDocument.model_validate(...) n'échoue.


Atténuation / Vérification du correctif

Atténuation 1 — Mettre à niveau docling-core (recommandé)

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

Attendu :

  • check_loader.py affiche yaml.SafeLoader
  • Le PoC échoue avec une erreur de constructeur YAML et aucun fichier marqueur n'est créé

Atténuation 2 — Mettre à niveau PyYAML

La mise à niveau de PyYAML vers >= 5.4 atténue le comportement en amont associé à la CVE-2020-14343.

Atténuation 3 — Imposer un chargement sécurisé

Si la mise à niveau n'est pas possible, évitez de charger du YAML non fiable avec des loaders non sécurisés. Imposez yaml.SafeLoader lors de la désérialisation de YAML non fiable.


Notes sur l'exposition en aval de docling (mappage des dépendances)

Bien que cette CVE concerne docling-core, le consommateur le plus courant est docling. Une large plage de dépendances dans docling ne prouve pas en soi la vulnérabilité ; ce qui compte, c'est l'environnement résolu (lockfiles / paquets installés) et l'utilisation ou non des chemins d'importation YAML.

Ce dépôt inclut collect_versions.py, qui mappe :

  • les contraintes déclarées de docling-core depuis pyproject.toml
  • les versions épinglées de docling-core depuis uv.lock (ou poetry.lock dans les anciens tags)

À partir des données extraites, les versions potentiellement vulnérables de docling (la contrainte autorise la version vulnérable + le lock épingle la version vulnérable) sont :

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

Il s'agit d'un indicateur de résolution de dépendances, et non d'une preuve que les flux de travail par défaut de docling atteignent load_from_yaml() sur des entrées non fiables.


Contenu du dépôt (vue d'ensemble)

  • repro_docling_load.py — exécuteur PoC minimal
  • check_loader.py — affiche le loader YAML utilisé par load_from_yaml()
  • scanner/ — un scanner simple basé sur les dépendances (vérification facultative du sink direct)
  • collect_versions.py — outil d'aide pour mapper les tags docling vers les versions épinglées de docling-core
Télécharger l’outil