Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
docling-core-CVE-2026-24009 — Write-up técnico y PoC para CVE-2026-24009, que demuestra la carga insegura de YAML en docling-core y rutas prácticas de mitigación. | Kitploit
Herramientas/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónPapers e InvestigaciónAprendizaje y Educación
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

Write-up técnico y PoC para CVE-2026-24009, que demuestra la carga insegura de YAML en docling-core y rutas prácticas de mitigación.

Ver Repositorio
hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-24009 — Deserialización insegura de YAML en docling-core (PoC + Notas)

Este repositorio contiene una prueba de concepto (PoC) y un escáner simple que demuestran la CVE-2026-24009, donde docling-core puede permitir la ejecución de código al cargar YAML controlado por un atacante bajo condiciones específicas de dependencias.

TL;DR

Impacto: posible RCE durante el análisis de YAML Cadena vulnerable (todos los requisitos):

  • docling-core >= 2.21.0 y < 2.48.4
  • PyYAML < 5.4 (comportamiento ascendente asociado con CVE-2020-14343)
  • la aplicación llama a DoclingDocument.load_from_yaml(...) sobre YAML no confiable

Solución: actualizar docling-core a >= 2.48.4 (cambia a yaml.SafeLoader) actualizar a


Solución alternativa:
PyYAML
>= 5.4

Antecedentes / Causa raíz

DoclingDocument.load_from_yaml() deserializa un DoclingDocument serializado en YAML. En versiones vulnerables, carga YAML usando un cargador inseguro (yaml.FullLoader) cuando PyYAML es vulnerable, lo que permite que constructores YAML maliciosos ejecuten código durante el análisis (consulte CVE-2020-14343 para más información).


Entorno probado (PoC)

  • SO: Ubuntu 24.04
  • Python: 3.12.3
  • docling-core: 2.48.3 (vulnerable)
  • PyYAML: 5.3.1 (vulnerable)

Reproducción (PoC)

1) Crear un entorno virtual

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) (Opcional) Confirmar el cargador vulnerable

Ejecute:

root@kitploit:~
python check_loader.py

En versiones vulnerables, load_from_yaml() usa:

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

3) Ejecutar la PoC

root@kitploit:~
python repro_docling_load.py

Comportamiento esperado:

  • repro_docling_load.py lanza un ValidationError (esperado)
  • se crea un archivo marcador local: /tmp/docling_cve_poc_marker

Esto demuestra que la ejecución ocurrió durante el análisis de YAML, antes de que DoclingDocument.model_validate(...) falle.


Mitigación / Verificación del parche

Mitigación 1 — Actualizar docling-core (recomendado)

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

Esperado:

  • check_loader.py muestra yaml.SafeLoader
  • la PoC falla con un error de constructor YAML y no se crea ningún archivo marcador

Mitigación 2 — Actualizar PyYAML

Actualizar PyYAML a >= 5.4 mitiga el comportamiento ascendente asociado con CVE-2020-14343.

Mitigación 3 — Forzar la carga segura

Si no es posible actualizar, evite cargar YAML no confiable con cargadores inseguros. Fuerce yaml.SafeLoader al deserializar YAML no confiable.


Notas sobre la exposición de docling aguas abajo (mapeo de dependencias)

Si bien esta CVE está en docling-core, el consumidor más común es docling. Un rango amplio de dependencias en docling no prueba la vulnerabilidad por sí mismo; lo que importa es el entorno resuelto (archivos de bloqueo / paquetes instalados) y si se utilizan rutas de importación YAML.

Este repositorio incluye collect_versions.py, que mapea:

  • restricciones declaradas de docling-core desde pyproject.toml
  • versiones fijadas de docling-core desde uv.lock (o poetry.lock en etiquetas más antiguas)

A partir de los datos extraídos, las versiones de docling potencialmente vulnerables (la restricción permite la vulnerable + el bloqueo fija la vulnerable) son:

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

Esto es un indicador de resolución de dependencias, no una prueba de que los flujos de trabajo predeterminados de docling lleguen a load_from_yaml() con entrada no confiable.


Contenido del repositorio (nivel alto)

  • repro_docling_load.py — ejecutor mínimo de la PoC
  • check_loader.py — imprime el cargador YAML usado por load_from_yaml()
  • scanner/ — un escáner simple basado en dependencias (verificación opcional de sumidero directo)
  • collect_versions.py — ayuda a mapear las etiquetas de docling a versiones fijadas de docling-core
Descargar herramienta