FreeScout — это бесплатная служба поддержки и общий почтовый ящик, созданный с помощью PHP-фреймворка Laravel. В версиях 1.8.208 и ниже обход логики просмотра вложений и средства очистки SVG позволяет загружать и отображать SVG, на котором выполняется вредоносный JavaScript. Допускается расширение .png с типом контента image/svg+xml, а резервный механизм для недопустимого XML приводит к небезопасной очистке.
Приложение ограничивает отображение загруженных файлов в строке: в браузере отображаются только файлы, считающиеся «безопасными»; другие обслуживаются с Content-Disposition: Attachment. Это решение основано на двух проверках: расширении файла (например, .png разрешено, а .svg — нет) и объявленном типе контента (например, image/* разрешено). Используя имя файла с разрешенным расширением (например, xss.png) и Content-Type image/svg+xml, злоумышленник может выполнить обе проверки и заставить сервер рассматривать загрузку как безопасное изображение и отображать его в строке, даже если тело файла представляет собой SVG и может содержать скриптовое поведение.
Любой прошедший проверку подлинности пользователь может настроить определенный URL-адрес, и всякий раз, когда его посещает другой пользователь или администратор, XSS может выполнять любые действия от его имени. Эта проблема исправлена в версии 1.8.209.
Показать оригинальное описание (EN)
FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. In versions 1.8.208 and below, bypasses of the attachment view logic and SVG sanitizer make it possible to upload and render an SVG that runs malicious JavaScript. An extension of .png with content type of image/svg+xml is allowed, and a fallback mechanism on invalid XML leads to unsafe sanitization. The application restricts which uploaded files are rendered inline: only files considered "safe" are displayed in the browser; others are served with Content-Disposition: attachment. This decision is based on two checks: the file extension (e.g. .png is allowed, while .svg may not be) and the declared Content-Type (e.g. image/* is allowed). By using a filename with an allowed extension (e.g. xss.png) and a Content-Type of image/svg+xml, an attacker can satisfy both checks and cause the server to treat the upload as a safe image and render it inline, even though the body is SVG and can contain scripted behavior. Any authenticated user can set up a specific URL, and whenever another user or administrator visits it, XSS can perform any action on their behalf. This issue has been fixed in version 1.8.209.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Freescout Freescout
cpe:2.3:a:freescout:freescout:*:*:*:*:*:*:*:*
|
— |
1.8.209
|