📂 CKFinder 1.4.3 – Cross-Site Scripting (XSS) persistente tramite caricamento di SVG dannoso
CVE ID: CVE-2025-63830
🧭 Panoramica
È stata identificata una vulnerabilità di Cross-Site Scripting (XSS) persistente in CKFinder v1.4.3.
Il problema risiede nella funzionalità di caricamento dei file, che non sanifica adeguatamente i file SVG contenenti contenuto attivo.
Di conseguenza, un attaccante può eseguire codice JavaScript arbitrario nel contesto del browser della vittima quando il file caricato viene visualizzato o aperto in anteprima.
⚙️ Dettagli
- Nome del rilevamento: Cross-Site Scripting (XSS) persistente tramite caricamento di SVG dannoso
- Gravità: Alta
- CVE ID: CVE-2025-63830
- Componente interessato: Funzione di caricamento file
- Prodotto interessato: CKFinder v1.4.3
- Fornitore: CKSource Holding sp. z o.o.
- Tipo di attacco: Remoto
🧾 Descrizione
CKFinder v1.4.3 è vulnerabile a Cross-Site Scripting (XSS) persistente nella sua funzionalità di caricamento dei file.
Il caricamento di un file SVG appositamente creato contenente codice JavaScript comporta l'esecuzione persistente di script quando il file viene successivamente aperto o visualizzato in anteprima nell'applicazione.
Ciò accade perché il file SVG viene archiviato e servito così com'è, consentendo ai tag <script> incorporati, ai gestori di eventi (ad es. onload, onclick) o agli elementi <foreignObject> di essere eseguiti nel contesto di origine dell'applicazione.
🧪 Passaggi per riprodurre
- Accedere all'applicazione integrata con CKFinder v1.4.3.
- Passare alla funzionalità Caricamento dei file.
- Caricare il seguente file SVG dannoso:
- Dopo il caricamento, aprire o visualizzare in anteprima il file dal file manager di CKFinder o da qualsiasi vista collegata.
- Osservare l'esecuzione di JavaScript nel browser.
🎯 Impatto / Rischi
- Esecuzione di JavaScript arbitrario nel browser della vittima.
- Furto di token di sessione o informazioni sensibili.
- Manipolazione del DOM o reindirizzamento verso siti web dannosi.
- Possibile movimento laterale all'interno delle interfacce di amministrazione o gestione.
🛡️ Rimedio
- Sanificare e validare i file SVG caricati prima della memorizzazione o del rendering.
- Disabilitare il caricamento di SVG se non necessario.
- Se il caricamento di SVG è necessario:
- Utilizzare un sanificatore SVG sicuro (ad es. DOMPurify, SVG-Sanitizer) prima del rendering.
- Servire gli SVG caricati con header di risposta sicuri:
Content-Type: image/svg+xml; charset=UTF-8
Content-Disposition: attachment
X-Content-Type-Options: nosniff
- Ospitare i file caricati dagli utenti su un dominio separato o CDN per imporre l'isolamento dell'origine.
- Aggiornare all'ultima versione di CKFinder, poiché le versioni più recenti potrebbero includere una migliore sanificazione dei file e una gestione della sicurezza migliorata.
Prova di concetto
👤 Scopritore
Shubham Ghadge
Ricercatore di sicurezza / Consulente di sicurezza applicativa