
Exploit basato su Python per CVE-2025-20260 che genera un file PDF dannoso e include funzionalità di analisi del core dump per la verifica della vulnerabilità.
Prima proof-of-concept pubblica per CVE-2025-20260 (punteggio base CVSS 3.1 9.8, Critico), una vulnerabilità di buffer overflow nel percorso di scanning PDF di ClamAV. Questo repository contiene un generatore per il PDF malevolo che attiva la falla, oltre a un'analisi del core dump che documenta il crash.
Questa PoC è stata sviluppata e pubblicata dopo che la vulnerabilità è stata corretta e divulgata in modo coordinato da Cisco/ClamAV. È fornita esclusivamente per ricerca difensiva, detection engineering e scopi educativi. Non eseguirla contro sistemi di cui non sei proprietario o per i quali non hai esplicita autorizzazione al test.
Secondo il record NVD e l'advisory Cisco:
Una vulnerabilità nei processi di scanning PDF di ClamAV potrebbe consentire a un attaccante remoto non autenticato di causare una condizione di buffer overflow, causare una condizione di denial of service (DoS) o eseguire codice arbitrario su un dispositivo interessato. Questa vulnerabilità esiste perché i buffer di memoria vengono allocati in modo errato durante l'elaborazione dei file PDF.
Il parser PDF di ClamAV legge il campo /Length di un oggetto stream per dimensionare il buffer allocato per i dati decodificati. clamshank.py costruisce un PDF il cui singolo oggetto dichiara una lunghezza malformata e sovradimensionata e contiene uno stream ASCII85Decode appena più lungo di uint32_MAX / 4 byte:
1 0 obj
<< /Length 1073741824 444444444444 /Filter /ASCII85Decode >>
stream
... (~1,073,741,825 bytes of ASCII85 data) ...
Quando ClamAV esegue lo scanning del file, l'aritmetica errata della lunghezza porta a un'allocazione di buffer di dimensione sbagliata e la successiva decodifica lo sovrascrive, mandando in crash il processo di scanning (DoS) con la potenziale esecuzione di codice nel contesto del processo ClamAV.
| File | Descrizione |
|---|---|
clamshank.py | Genera clam-cve.pdf, il PDF malevolo che attiva l'overflow. |
HOS Core dump analysis for CVE-2025-20260.pdf | Analisi del core dump del crash, che documenta l'overflow al momento del fault. |
python3 clamshank.py # writes clam-cve.pdf
clamscan clam-cve.pdf # against a vulnerable ClamAV build, in an isolated VM
Eseguire solo contro un'istanza ClamAV sotto il proprio controllo, in un ambiente usa-e-getta/isolato. Il file generato è di ~1 GB per design.
Aggiornare a una release di ClamAV corretta (consultare l'advisory Cisco per le versioni corrette). Non esporre lo scanning PDF di input non attendibile su build non corrette.
Solo per ricerca di sicurezza autorizzata e scopi educativi. L'autore non è responsabile per usi impropri.