CVE-2025-63307 – Межсайтовый скриптинг (XSS) с сохранением (требуется аутентификация) в laravel-file-manager v3.3.1
🧭 Обзор
Уязвимость межсайтового скриптинга (XSS) с сохранением, требующая аутентификации, в laravel-file-manager v3.3.1 и более ранних версиях позволяет злоумышленникам, имеющим доступ к интерфейсу файлового менеджера, внедрять и сохранять произвольный JavaScript-код в загружаемых или создаваемых файлах.
Загружая специально подготовленный .html или .svg файл, содержащий вредоносный JavaScript, или непосредственно создавая и редактируя такой файл в файловом менеджере, злоумышленники могут добиться сохранённого XSS, который выполняется, когда любой другой аутентифицированный пользователь или администратор просматривает файл через веб-интерфейс.
🧱 Затрагиваемый компонент
- Проект:
laravel-file-manager
- Компонент: Функциональность загрузки, создания и отображения файлов (например, FileManagerController.php)
- Затрагиваемая версия: v3.3.1 и более ранние
🎯 Векторы атаки
- Выполните аутентификацию с учётной записью, имеющей разрешение на загрузку, создание или переименование файлов через интерфейс файлового менеджера.
- Загрузите или создайте файл с расширением .svg или .html, содержащий вредоносный JavaScript.
- Приложение сохраняет этот файл без проверки его содержимого или очистки встроенных скриптов.
- Когда другой пользователь (например, администратор или сопровождающий репозитория) просматривает или предварительно просматривает файл в своём браузере, вредоносный JavaScript выполняется в контексте домена приложения.
- Скрипт затем может выполнять такие действия, как угон сессии, CSRF или кража конфиденциальных данных из браузера жертвы.
💥 Воздействие
- Сохранённый XSS: Постоянное выполнение JavaScript в пределах источника приложения.
- Угон сессии и захват учётной записи: Злоумышленники могут украсть куки или выполнять действия от имени жертвы.
- Фишинг / подделка интерфейса: Внедрённые скрипты могут подменять элементы интерфейса или перенаправлять пользователей на вредоносные сайты.
- Раскрытие конфиденциальных данных: Доступ к информации в приложении, доступной в рамках сессии жертвы.
CVSS v3
Базовая оценка: 8.1
Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
Степень опасности: Высокая
🛡️ Рекомендуемые меры по устранению
- Внедрите строгую проверку и фильтрацию MIME-типов на стороне сервера для загружаемых файлов.
- Запретите или очищайте загрузки файлов с расширениями .html, .svg или другими форматами, способными содержать активное содержимое.
- Отдавайте загруженные пользователем файлы с заголовком Content-Disposition: attachment или с отдельного, неисполняемого домена/поддомена.
- Применяйте кодирование вывода и очистку перед отображением содержимого, управляемого пользователем, в браузере.
🙏 Благодарности
Обнаружено и сообщено: Chayawat Jeamprasertboon, Thanakorn Boontem, Sahapon Kanajanothai и Theethat Thamwasin