📂 CKFinder 1.4.3 – Хранимый межсайтовый скриптинг (XSS) через загрузку вредоносного SVG-файла
CVE ID: CVE-2025-63830
🧭 Обзор
В CKFinder v1.4.3 была обнаружена уязвимость хранимого межсайтового скриптинга (XSS).
Проблема связана с функцией загрузки файлов, которая не выполняет надлежащую санитизацию SVG-файлов, содержащих активное содержимое.
В результате злоумышленник может выполнить произвольный JavaScript-код в контексте браузера жертвы при просмотре или предпросмотре загруженного файла.
⚙️ Детали
- Название находки: Хранимый межсайтовый скриптинг (XSS) через загрузку вредоносного SVG-файла
- Серьёзность: Высокая
- CVE ID: CVE-2025-63830
- Затронутый компонент: Функция загрузки файлов
- Затронутый продукт: CKFinder v1.4.3
- Вендор: CKSource Holding sp. z o.o.
- Тип атаки: Удалённая
🧾 Описание
CKFinder v1.4.3 подвержен хранимому межсайтовому скриптингу (XSS) в функции загрузки файлов.
Загрузка специально созданного SVG-файла, содержащего JavaScript-код, приводит к постоянному выполнению скрипта при последующем доступе к файлу или его предпросмотре в приложении.
Это происходит потому, что SVG-файл сохраняется и отдаётся как есть, что позволяет встроенным тегам <script>, обработчикам событий (например, onload, onclick) или элементам <foreignObject> выполняться в контексте источника приложения.
🧪 Шаги для воспроизведения
- Войдите в приложение, интегрированное с CKFinder v1.4.3.
- Перейдите к функции загрузки файлов.
- Загрузите следующий вредоносный SVG-файл:
- После загрузки откройте или просмотрите файл в файловом менеджере CKFinder или в любом связанном представлении.
- Наблюдайте выполнение JavaScript в браузере.
🎯 Влияние / Риски
- Выполнение произвольного JavaScript в браузере жертвы.
- Похищение токенов сессии или конфиденциальной информации.
- Манипуляция DOM или перенаправление на вредоносные веб-сайты.
- Возможное горизонтальное перемещение в интерфейсах администратора или управления.
🛡️ Устранение
- Санитизируйте и проверяйте загружаемые SVG-файлы перед сохранением или отображением.
- Отключите загрузку SVG-файлов, если она не требуется.
- Если загрузка SVG-файлов необходима:
- Используйте безопасный санитайзер SVG (например, DOMPurify, SVG-Sanitizer) перед отображением.
- Отдавайте загруженные SVG с безопасными заголовками ответа:
Content-Type: image/svg+xml; charset=UTF-8
Content-Disposition: attachment
X-Content-Type-Options: nosniff
- Размещайте загружаемые пользователями файлы на отдельном домене или CDN для обеспечения изоляции источника.
- Обновитесь до последней версии CKFinder, поскольку новые версии могут включать улучшенную санитизацию файлов и обработку безопасности.
Доказательство концепции
👤 Обнаруживший
Shubham Ghadge
Исследователь безопасности / Консультант по безопасности приложений