Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-59941 — Dompdf: Denial of Service (DoS) tramite esaurimento delle risorse utilizzando bitmap di immagini sovradimensionate | Kitploit
Strumenti/GitHubGitHub/far00t01/cve-2026-59941
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubfar00t01/cve-2026-59941

CVE-2026-59941

Dompdf: Denial of Service (DoS) tramite esaurimento delle risorse utilizzando bitmap di immagini sovradimensionate

Vedi Repository
452 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-59942: Esaurimento delle risorse DoS in Dompdf - Proof of Concept

  • Tipo di vulnerabilità: Denial of Service (DoS) tramite esaurimento delle risorse
  • Software interessato: Dompdf <= 3.1.5
  • Crediti: Fabian Rosales (far00t01).

Disclaimer

Questo repository e il suo contenuto sono forniti esclusivamente a scopo didattico e di ricerca. L'autore non è responsabile per qualsiasi uso improprio, danno o attività illegale condotta con le informazioni qui fornite. Ottenere sempre l'autorizzazione prima di testare ambienti di destinazione.

Riepilogo

Dompdf v3.1.5 è vulnerabile a un attacco Denial of Service (DoS) tramite esaurimento delle risorse. Un attaccante può mandare in crash il processo PHP fornendo un documento HTML appositamente costruito contenente una singola immagine con dimensioni enormi (ad esempio, 30.000x30.000 pixel).

Sebbene Dompdf implementi controlli interni per validare le dimensioni delle immagini, questi possono essere aggirati utilizzando un'immagine ad alta entropia (come rumore casuale) codificata in Base64 e racchiusa in specifici contenitori CSS.

Analisi tecnica approfondita:

Le immagini standard a tinta unita possono spesso essere ottimizzate dagli algoritmi di compressione o dai motori di rendering. Tuttavia, un'immagine di rumore ad alta entropia costringe il motore PHP a elaborare individualmente ciascuno dei 900 milioni di pixel. Quando viene chiamato render(), il motore tenta di gestire in memoria la bitmap non compressa e di calcolare il layout per ogni punto dati ad alta varianza. Ciò comporta:

  • Saturazione della CPU al 100%: Il thread di rendering si blocca indefinitamente nel tentativo di elaborare il flusso di pixel.
  • Terminazione del processo: L'ingente allocazione di memoria (verificata a ~1,2 GB per una singola immagine) provoca un Fatal Error o un SIGKILL a livello di sistema operativo (OOM), con conseguente Denial of Service immediato.

Dettagli

La vulnerabilità esiste perché la validazione delle dimensioni avviene in una fase iniziale, ma l'allocazione delle risorse per il calcolo del bounding box dell'oggetto e dei buffer interni durante la fase di rendering non limita rigorosamente il tempo CPU cumulativo o l'utilizzo di memoria per un singolo oggetto che ha superato il controllo iniziale.

Risultati del Proof of Concept

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

  1. Installare Dompdf v3.1.5 tramite Composer.
composer require dompdf/dompdf:3.1.5
  1. Utilizzare il seguente script Python per generare il payload malevolo (exploit.py):
  2. Utilizzare il seguente script Python per monitorare le risorse di sistema in un terminale separato (monitor.py):
  3. Creare un file denominato render.php. Questo script funge da punto di ingresso vulnerabile, simulando un'implementazione standard della libreria Dompdf:
  4. Eseguire il processo PHP, fornendo il payload tramite stdin. Utilizziamo un limite di memoria di 2GB per dimostrare che il crash è causato da un'allocazione non controllata anziché da una configurazione del server restrittiva:
php -d memory_limit=2G render.php < payload.html
  1. Il motore tenta di elaborare ogni pixel dell'immagine ad alta entropia. Lo script monitor.py registrerà una saturazione della CPU del 99,8%, seguita da un PHP Fatal Error (Allowed memory size exhausted) mentre Dompdf tenta di allocare ~1,2 GB in un'unica operazione. Il processo viene quindi terminato, confermando il Denial of Service.

I log seguenti dimostrano lo sfruttamento riuscito della vulnerabilità di esaurimento delle risorse. Nonostante un limite di memoria generoso di 2GB fornito al processo PHP, una singola immagine ad alta entropia provoca un crash fatale.

Generazione del Payload:

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

Esecuzione del target e Denial of Service:

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 l'esecuzione del processo render.php, lo script monitor.py ha catturato la seguente telemetria, mostrando l'impatto sulle risorse di sistema:

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

Risultati chiave dalla telemetria:

  • Esaurimento della CPU: il processo ha raggiunto un utilizzo sostenuto della CPU pari al 99,7%. In un ambiente di produzione, questo livello di saturazione su un processo PHP single-threaded nega di fatto il servizio a qualsiasi altra attività su quel core.
  • Rapida inflazione della memoria: la memoria residente (RSS) è salita a 953,17 MB poco prima che il motore tentasse l'allocazione finale di 1,2 GB che ha innescato l'errore fatale.
  • Conferma del bypass: la telemetria dimostra che i limiti interni "sicuri" di Dompdf sono stati aggirati, poiché il motore ha proceduto a tentare una massiccia decompressione di bitmap che l'ambiente host non era in grado di sostenere.

Impatto

Un attaccante remoto non autenticato può causare un Denial of Service completo sul server web inviando una stringa HTML appositamente costruita. Ciò riguarda qualsiasi applicazione che consenta agli utenti di fornire contenuti HTML o URL successivamente convertiti in PDF tramite Dompdf.

Riferimenti

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