Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
docling-core-CVE-2026-24009 — Technical write-up e PoC per CVE-2026-24009, che dimostrano il caricamento non sicuro di YAML in docling-core e percorsi pratici di mitigazione. | Kitploit
Strumenti/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
Analisi delle VulnerabilitàAnalisi del CodiceExploitPaper e RicercaApprendimento e Formazione
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

Technical write-up e PoC per CVE-2026-24009, che dimostrano il caricamento non sicuro di YAML in docling-core e percorsi pratici di mitigazione.

Vedi Repository
56 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-24009 — Deserializzazione YAML non sicura in docling-core (PoC + Note)

Questo repository contiene una proof-of-concept (PoC) e un semplice scanner che dimostrano la CVE-2026-24009, in cui docling-core può abilitare l'esecuzione di codice quando carica YAML controllato da un attaccante in specifiche condizioni di dipendenza.

TL;DR

Impatto: potenziale RCE durante il parsing YAML Catena vulnerabile (tutti i requisiti):

  • docling-core >= 2.21.0 e < 2.48.4
  • PyYAML < 5.4 (comportamento a monte associato a CVE-2020-14343)
  • l'applicazione chiama DoclingDocument.load_from_yaml(...) su YAML non attendibile

Fix: aggiornare docling-core a >= 2.48.4 (passa a yaml.SafeLoader) aggiornare a


Fix alternativo:
PyYAML
>= 5.4

Contesto / Causa principale

DoclingDocument.load_from_yaml() deserializza un DoclingDocument serializzato in YAML. Nelle versioni vulnerabili, carica YAML utilizzando un loader non sicuro (yaml.FullLoader) quando PyYAML è vulnerabile, consentendo a costruttori YAML malevoli di eseguire codice durante il parsing (vedere CVE-2020-14343 per maggiori informazioni).


Ambiente testato (PoC)

  • Sistema operativo: Ubuntu 24.04
  • Python: 3.12.3
  • docling-core: 2.48.3 (vulnerabile)
  • PyYAML: 5.3.1 (vulnerabile)

Riproduzione (PoC)

1) Creare un ambiente virtuale

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) (Opzionale) Confermare il loader vulnerabile

Eseguire:

root@kitploit:~
python check_loader.py

Nelle versioni vulnerabili, load_from_yaml() utilizza:

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

3) Eseguire la PoC

root@kitploit:~
python repro_docling_load.py

Comportamento atteso:

  • repro_docling_load.py solleva una ValidationError (atteso)
  • viene creato un file marker locale: /tmp/docling_cve_poc_marker

Questo dimostra che l'esecuzione è avvenuta durante il parsing YAML, prima che DoclingDocument.model_validate(...) fallisca.


Mitigazione / Verifica della patch

Mitigazione 1 — Aggiornare docling-core (consigliato)

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

Atteso:

  • check_loader.py mostra yaml.SafeLoader
  • La PoC fallisce con un errore del costruttore YAML e nessun file marker viene creato

Mitigazione 2 — Aggiornare PyYAML

L'aggiornamento di PyYAML a >= 5.4 mitiga il comportamento a monte associato a CVE-2020-14343.

Mitigazione 3 — Imporre un caricamento sicuro

Se l'aggiornamento non è possibile, evitare di caricare YAML non attendibile con loader non sicuri. Imporre yaml.SafeLoader durante la deserializzazione di YAML non attendibile.


Note sull'esposizione a valle di docling (mappatura delle dipendenze)

Sebbene questa CVE sia in docling-core, il consumatore più comune è docling. Un ampio intervallo di dipendenze in docling non dimostra di per sé la vulnerabilità; ciò che conta è l'ambiente risolto (lockfile / pacchetti installati) e se vengono utilizzati percorsi di importazione YAML.

Questo repository include collect_versions.py, che mappa:

  • i vincoli dichiarati di docling-core da pyproject.toml
  • le versioni bloccate di docling-core da uv.lock (o poetry.lock nei tag più vecchi)

Dai dati estratti, le versioni di docling potenzialmente vulnerabili (il vincolo consente versioni vulnerabili + il lock blocca versioni vulnerabili) sono:

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

Questo è un indicatore di risoluzione delle dipendenze, non una prova che i flussi di lavoro predefiniti di docling raggiungano load_from_yaml() su input non attendibili.


Contenuto del repository (panoramica)

  • repro_docling_load.py — esecutore PoC minimale
  • check_loader.py — stampa il loader YAML utilizzato da load_from_yaml()
  • scanner/ — un semplice scanner basato sulle dipendenze (controllo opzionale del sink diretto)
  • collect_versions.py — helper per mappare i tag di docling alle versioni bloccate di docling-core
Scarica lo strumento