Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
docling-core-CVE-2026-24009 — Write-up técnico e PoC para CVE-2026-24009, demonstrando carregamento inseguro de YAML no docling-core e caminhos práticos de mitigação. | Kitploit
Ferramentas/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
Análise de VulnerabilidadesAnálise de CódigoExploraçãoPapers e PesquisaAprendizado e Educação
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

Write-up técnico e PoC para CVE-2026-24009, demonstrando carregamento inseguro de YAML no docling-core e caminhos práticos de mitigação.

Ver Repositório
5há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-24009 — Desserialização insegura de YAML no docling-core (PoC + Notas)

Este repositório contém uma prova de conceito (PoC) e um scanner simples demonstrando a CVE-2026-24009, onde o docling-core pode permitir execução de código ao carregar YAML controlado por atacante sob condições específicas de dependências.

Resumo

Impacto: possível RCE durante o parsing de YAML Cadeia vulnerável (todos os requisitos):

  • docling-core >= 2.21.0 e < 2.48.4
  • PyYAML < 5.4 (comportamento upstream associado à CVE-2020-14343)
  • a aplicação chama DoclingDocument.load_from_yaml(...) em YAML não confiável

Correção: atualize o docling-core para >= 2.48.4 (muda para yaml.SafeLoader) atualize o para


Correção alternativa:
PyYAML
>= 5.4

Contexto / Causa raiz

DoclingDocument.load_from_yaml() desserializa um DoclingDocument serializado em YAML. Em versões vulneráveis, ele carrega YAML usando um loader inseguro (yaml.FullLoader) quando o PyYAML é vulnerável, permitindo que construtores YAML maliciosos executem código durante o parsing (consulte a CVE-2020-14343 para mais informações).


Ambiente testado (PoC)

  • SO: Ubuntu 24.04
  • Python: 3.12.3
  • docling-core: 2.48.3 (vulnerável)
  • PyYAML: 5.3.1 (vulnerável)

Reprodução (PoC)

1) Criar um ambiente 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 o loader vulnerável

Execute:

root@kitploit:~
python check_loader.py

Em versões vulneráveis, load_from_yaml() usa:

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

3) Executar a PoC

root@kitploit:~
python repro_docling_load.py

Comportamento esperado:

  • repro_docling_load.py levanta um ValidationError (esperado)
  • um arquivo de marcador local é criado: /tmp/docling_cve_poc_marker

Isso demonstra que a execução ocorreu durante o parsing de YAML, antes de DoclingDocument.model_validate(...) falhar.


Mitigação / Verificação da correção

Mitigação 1 — Atualizar o 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 mostra yaml.SafeLoader
  • A PoC falha com um erro de construtor YAML e nenhum arquivo de marcador é criado

Mitigação 2 — Atualizar o PyYAML

Atualizar o PyYAML para >= 5.4 mitiga o comportamento upstream associado à CVE-2020-14343.

Mitigação 3 — Forçar carregamento seguro

Se a atualização não for possível, evite carregar YAML não confiável com loaders inseguros. Force yaml.SafeLoader ao desserializar YAML não confiável.


Notas sobre a exposição downstream do docling (mapeamento de dependências)

Embora esta CVE esteja no docling-core, o consumidor mais comum é o docling. Uma faixa ampla de dependências no docling não prova vulnerabilidade por si só; o que importa é o ambiente resolvido (lockfiles / pacotes instalados) e se os caminhos de importação de YAML são usados.

Este repositório inclui collect_versions.py, que mapeia:

  • restrições declaradas de docling-core do pyproject.toml
  • versões fixadas de docling-core do uv.lock (ou poetry.lock em tags mais antigas)

A partir dos dados extraídos, as versões potencialmente vulneráveis do docling (a restrição permite vulnerável + o lock fixa vulnerável) são:

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

Este é um indicador de resolução de dependências, não uma prova de que os fluxos de trabalho padrão do docling alcançam load_from_yaml() em entrada não confiável.


Conteúdo do repositório (visão geral)

  • repro_docling_load.py — executor mínimo da PoC
  • check_loader.py — imprime o loader YAML usado por load_from_yaml()
  • scanner/ — um scanner simples baseado em dependências (verificação opcional de sink direto)
  • collect_versions.py — auxiliar para mapear tags do docling para versões fixadas de docling-core
Baixar ferramenta