📂 CKFinder 1.4.3 – Gespeicherte Cross-Site-Scripting (XSS) durch bösartigen SVG-Upload
CVE-ID: CVE-2025-63830
🧭 Übersicht
Eine gespeicherte Cross-Site-Scripting (XSS)-Schwachstelle wurde in CKFinder v1.4.3 identifiziert.
Das Problem liegt in der Datei-Upload-Funktionalität, die SVG-Dateien mit aktivem Inhalt nicht ordnungsgemäß bereinigt.
Infolgedessen kann ein Angreifer beliebigen JavaScript-Code im Kontext des Browsers des Opfers ausführen, wenn die hochgeladene Datei angezeigt oder in der Vorschau betrachtet wird.
⚙️ Details
- Bezeichnung: Gespeicherte Cross-Site-Scripting (XSS) durch bösartigen SVG-Upload
- Schweregrad: Hoch
- CVE-ID: CVE-2025-63830
- Betroffene Komponente: Datei-Upload-Funktion
- Betroffenes Produkt: CKFinder v1.4.3
- Anbieter: CKSource Holding sp. z o.o.
- Angriffsart: Remote
🧾 Beschreibung
CKFinder v1.4.3 ist anfällig für Gespeicherte Cross-Site-Scripting (XSS) in seiner Datei-Upload-Funktionalität.
Das Hochladen einer manipulierten SVG-Datei, die JavaScript-Code enthält, führt zu einer persistenten Skriptausführung, wenn die Datei später in der Anwendung aufgerufen oder in der Vorschau angezeigt wird.
Dies geschieht, weil die SVG-Datei unverändert gespeichert und ausgeliefert wird, sodass eingebettete <script>-Tags, Event-Handler (z. B. onload, onclick) oder <foreignObject>-Elemente im Ursprungskontext der Anwendung ausgeführt werden können.
🧪 Schritte zur Reproduktion
- Melden Sie sich bei der Anwendung an, die in CKFinder v1.4.3 integriert ist.
- Navigieren Sie zur Datei-Upload-Funktion.
- Laden Sie die folgende bösartige SVG-Datei hoch:
- Greifen Sie nach dem Upload auf die Datei über den CKFinder-Dateimanager oder eine verknüpfte Ansicht zu oder zeigen Sie eine Vorschau an.
- Beobachten Sie die JavaScript-Ausführung im Browser.
🎯 Auswirkungen / Risiken
- Ausführung beliebigen JavaScript-Codes im Browser des Opfers.
- Diebstahl von Sitzungstoken oder sensiblen Informationen.
- DOM-Manipulation oder Weiterleitung zu bösartigen Websites.
- Potenzielle laterale Bewegung innerhalb von Admin- oder Verwaltungsoberflächen.
🛡️ Behebung
- Bereinigen und validieren Sie hochgeladene SVG-Dateien vor dem Speichern oder Rendern.
- Deaktivieren Sie SVG-Uploads, falls nicht erforderlich.
- Falls SVG-Uploads erforderlich sind:
- Verwenden Sie einen sicheren SVG-Sanitizer (z. B. DOMPurify, SVG-Sanitizer) vor dem Rendern.
- Stellen Sie hochgeladene SVGs mit sicheren Antwort-Headern bereit:
Content-Type: image/svg+xml; charset=UTF-8
Content-Disposition: attachment
X-Content-Type-Options: nosniff
- Hosten Sie benutzerhochgeladene Dateien auf einer separaten Domain oder CDN, um Ursprungsisolierung zu erzwingen.
- Aktualisieren Sie auf die neueste Version von CKFinder, da neuere Versionen möglicherweise eine verbesserte Dateibereinigung und Sicherheitshandhabung enthalten.
Proof-Of-Concept
👤 Entdecker
Shubham Ghadge
Sicherheitsforscher / Anwendungssicherheitsberater