Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-59941 — Dompdf: Negação de Serviço (DoS) via Exaustão de Recursos usando Bitmaps de Imagens Superdimensionados | Kitploit
Ferramentas/GitHubGitHub/far00t01/cve-2026-59941
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubfar00t01/cve-2026-59941

CVE-2026-59941

Dompdf: Negação de Serviço (DoS) via Exaustão de Recursos usando Bitmaps de Imagens Superdimensionados

Ver Repositório
46há 2 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-59942: DoS por Esgotamento de Recursos no Dompdf - Prova de Conceito

  • Tipo de Vulnerabilidade: Negação de Serviço (DoS) via Esgotamento de Recursos
  • Software Afetado: Dompdf <= 3.1.5
  • Créditos: Fabian Rosales (far00t01).

Aviso Legal

Este repositório e seu conteúdo são fornecidos apenas para fins educacionais e de pesquisa. O autor não se responsabiliza por qualquer uso indevido, dano ou atividade ilegal realizada com as informações aqui fornecidas. Sempre obtenha autorização antes de testar ambientes-alvo.

Resumo

O Dompdf v3.1.5 é vulnerável a um ataque de Negação de Serviço (DoS) por esgotamento de recursos. Um atacante pode derrubar o processo PHP fornecendo um documento HTML especialmente criado contendo uma única imagem com dimensões massivas (por exemplo, 30.000x30.000 pixels).

Embora o Dompdf implemente verificações internas para validar as dimensões da imagem, estas podem ser contornadas usando uma imagem de alta entropia (como ruído aleatório) codificada em Base64 e envolvida em contêineres CSS específicos.

Análise Técnica Aprofundada:

Imagens de cor sólida padrão geralmente podem ser otimizadas por algoritmos de compressão ou mecanismos de renderização. No entanto, uma imagem de ruído de alta entropia força o motor PHP a processar cada um dos 900 milhões de pixels individualmente. Quando render() é chamado, o motor tenta lidar com o bitmap descompactado na memória e calcular o layout para cada ponto de dados de pixel de alta variância. Isso leva a:

  • Saturação de 100% da CPU: A thread de renderização trava indefinidamente tentando processar o fluxo de pixels.
  • Encerramento do Processo: A alocação massiva de memória (verificada em ~1,2 GB para uma única imagem) dispara um Fatal Error ou um SIGKILL em nível de SO (OOM), resultando em uma Negação de Serviço imediata.

Detalhes

A vulnerabilidade existe porque a validação de dimensões ocorre precocemente, mas a alocação de recursos para calcular a caixa delimitadora do objeto e os buffers internos durante a fase de renderização não limita estritamente o tempo cumulativo de CPU ou o uso de memória para um único objeto que passou na verificação inicial.

Resultados da Prova de Conceito

https://github.com/user-attachments/assets/d1f5a07b-a7c5-4b5e-84b5-1e47e73522d9

  1. Instale o Dompdf v3.1.5 via Composer.
composer require dompdf/dompdf:3.1.5
  1. Use o seguinte script Python para gerar o payload malicioso (exploit.py):
  2. Use o seguinte script Python para monitorar os recursos do sistema em um terminal separado (monitor.py):
  3. Crie um arquivo chamado render.php. Este script atua como o ponto de entrada vulnerável, imitando uma implementação padrão da biblioteca Dompdf:
  4. Execute o processo PHP, fornecendo o payload via stdin. Usamos um limite de memória de 2GB para demonstrar que o crash é causado por alocação descontrolada e não por uma configuração restritiva do servidor:
php -d memory_limit=2G render.php < payload.html
  1. O motor tenta processar cada pixel da imagem de alta entropia. O script monitor.py registrará 99,8% de saturação de CPU, seguido por um PHP Fatal Error (Allowed memory size exhausted) à medida que o Dompdf tenta alocar ~1,2 GB em uma única operação. O processo é então encerrado, confirmando a Negação de Serviço.

Os logs a seguir demonstram a exploração bem-sucedida da vulnerabilidade de esgotamento de recursos. Apesar de um limite de memória generoso de 2GB fornecido ao processo PHP, uma única imagem de alta entropia causa um crash fatal.

Geração de Payload:

python3 exploit.py 
[*] Generating 30000x30000 High-Entropy Noise Bomb...
[+] High-entropy payload saved to: payload.html

Execução de Alvo e Negação de Serviço:

php -d memory_limit=2G render.php < payload.html
Output
[*] Starting Dompdf rendering process...
PHP Fatal error:  Allowed memory size of 2147483648 bytes exhausted (tried to allocate 1200355712 bytes) in /home/far00t/dompdf_exploit/vendor/dompdf/dompdf/src/Dompdf.php on line 490

Durante a execução do processo render.php, o script monitor.py capturou a seguinte telemetria, mostrando o impacto nos recursos do sistema:

python3 monitor.py 
[*] Searching for PHP processes... (Press Ctrl+C to stop)
[MONITOR] PID: 210767 | RAM: 953.17 MB | CPU: 99.7%

Principais Descobertas da Telemetria:

  • Inanição de CPU: O processo atingiu um uso sustentado de 99,7% de CPU. Em um ambiente de produção, esse nível de saturação em um processo PHP de thread única efetivamente nega serviço a qualquer outra tarefa naquele núcleo.
  • Inflação Rápida de Memória: A memória residente (RSS) subiu para 953,17 MB pouco antes de o mecanismo tentar a alocação final de 1,2 GB que desencadeou o erro Fatal.
  • Confirmação de Bypass: A telemetria prova que os limites internos "seguros" do Dompdf foram contornados, pois o mecanismo prosseguiu para tentar uma descompressão massiva de bitmap que o ambiente hospedeiro não conseguia sustentar.

Impacto

Um atacante remoto não autenticado pode causar uma negação de serviço completa no servidor web ao enviar uma string HTML especialmente criada. Isso afeta qualquer aplicação que permita aos usuários fornecer conteúdo HTML ou URLs que sejam subsequentemente convertidos em PDF usando o Dompdf.

Referência

  • https://github.com/dompdf/dompdf/security/advisories/GHSA-f5gf-2cj8-52g2
  • https://www.cve.org/CVERecord?id=CVE-2026-59942
Baixar ferramenta