
CVE-2026-23499 - Saleor уязвим к хранимому XSS через неограниченную загрузку файлов
| Поле | Сведения |
|---|---|
| Идентификатор CVE | CVE-2026-23499 |
| Серьёзность | ВЫСОКАЯ |
| Консультация | Просмотреть консультацию |
| Обнаружил | Lukasz Rybak |
Saleor позволял аутентифицированным сотрудникам или приложениям (Apps) загружать произвольные файлы, включая вредоносные HTML- и SVG-файлы, содержащие JavaScript. В зависимости от стратегии развёртывания эти файлы могут обслуживаться с того же домена, что и панель управления, без каких-либо ограничений, что приводит к выполнению вредоносных сценариев в контексте браузера пользователя.
Недобросовестные сотрудники могли создавать инъекции сценариев, нацеленные на других сотрудников, возможно, похищая их токены доступа и/или обновления (refresh-токены).
Вы затронуты, если:
example.com/dashboard/, а медиа — в example.com/media/; вы не затронуты, если медиафайлы размещены в другом домене, например, media.example.com.Content-Disposition: attachment для медиафайлов.Пользователи Saleor Cloud не затронуты.
Эта проблема исправлена в версиях: 3.22.27, 3.21.43 и 3.20.108.
ВАЖНО: если вы считаете, что вы затронуты, не уверены или хотите проверить, выполните следующую команду:
$ ./manage.py remove_invalid_files
Эта команда сканирует все загруженные файлы (в медиахранилище, например, в файловой системе, корзине S3 и т. д.). Вам следует поискать неожиданные файлы; если вы видите расхождения, сделайте одно из следующих действий:
./manage.py remove_invalid_files --apply)Мы настоятельно рекомендуем обновиться до последних версий; если немедленное обновление невозможно, возможными обходными путями являются:
Content-Security-Policy: default-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none';main: https://github.com/saleor/saleor/commit/b3cb27b3fe96dae3c879063e56d32a9398eabd24Об этой уязвимости сообщил Łukasz Rybak.
Данная уязвимость (CVE) была раскрыта ответственно в соответствии с практикой скоординированного раскрытия уязвимостей. Информация, представленная здесь, предназначена только для образовательных и защитных целей.