Parse Server — это серверная часть с открытым исходным кодом, которую можно развернуть в любой инфраструктуре, поддерживающей Node.js. До версий 9.5.2-alpha.4 и 8.6.17 уязвимость хранимого межсайтового скриптинга (XSS) позволяла любому авторизованному пользователю загружать файл SVG, содержащий JavaScript. Файл обслуживается встроенным с Content-Type: image/svg+xml и без защитных заголовков, что заставляет браузер выполнять встроенные сценарии в источнике Parse Server.
Это можно использовать для кражи токенов сеанса из localStorage и захвата учетной записи. Опция fileExtensions по умолчанию блокирует расширения файлов HTML, но не блокирует SVG, который является известным вектором XSS. Это затрагивает все развертывания сервера Parse, где включена загрузка файлов для аутентифицированных пользователей (по умолчанию).
Эта уязвимость исправлена в версиях 9.5.2-alpha.4 и 8.6.17.
Показать оригинальное описание (EN)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.5.2-alpha.4 and 8.6.17, a stored cross-site scripting (XSS) vulnerability allows any authenticated user to upload an SVG file containing JavaScript. The file is served inline with Content-Type: image/svg+xml and without protective headers, causing the browser to execute embedded scripts in the Parse Server origin. This can be exploited to steal session tokens from localStorage and achieve account takeover. The default fileExtensions option blocks HTML file extensions but does not block SVG, which is a well-known XSS vector. All Parse Server deployments where file upload is enabled for authenticated users (the default) are affected. This vulnerability is fixed in 9.5.2-alpha.4 and 8.6.17.
Характеристики атаки
Последствия
Строка CVSS v4.0