
CVE-2026-23499 - Saleor vulnerable a XSS almacenado mediante carga de archivos sin restricciones
| Campo | Detalles |
|---|---|
| ID de CVE | CVE-2026-23499 |
| Gravedad | HIGH |
| Aviso | Ver aviso |
| Descubierto por | Lukasz Rybak |
Saleor permitía a usuarios autenticados del personal o a Apps subir archivos arbitrarios, incluyendo archivos HTML y SVG maliciosos que contienen Javascript. Dependiendo de la estrategia de despliegue, estos archivos pueden servirse desde el mismo dominio que el panel de control sin restricciones, lo que lleva a la ejecución de scripts maliciosos en el contexto del navegador del usuario.
Los miembros del personal maliciosos podrían crear inyecciones de scripts dirigidas a otros miembros del personal, posiblemente robando sus tokens de acceso y/o de actualización.
Estás afectado si:
example.com/dashboard/ y los archivos multimedia están bajo example.com/media/ - no estás afectado si los archivos multimedia están alojados en un dominio diferente, p. ej., media.example.com.Content-Disposition: attachment para los archivos multimedia.Los usuarios de Saleor Cloud no están afectados.
Este problema ha sido parcheado en las versiones: 3.22.27, 3.21.43 y 3.20.108.
IMPORTANTE: si crees que estás afectado, o si no estás seguro o quieres verificarlo, debes ejecutar el siguiente comando:
$ ./manage.py remove_invalid_files
Esto escanea todos los archivos subidos (en el almacenamiento de medios, p. ej., el sistema de archivos, un bucket de S3, etc.). Debes buscar archivos inesperados; si ves diferencias, entonces, o bien:
./manage.py remove_invalid_files --apply)Recomendamos encarecidamente actualizar a las últimas versiones; en caso de no poder actualizar de inmediato, posibles soluciones alternativas son:
Content-Security-Policy para los archivos multimedia, como Content-Security-Policy: default-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none';main: https://github.com/saleor/saleor/commit/b3cb27b3fe96dae3c879063e56d32a9398eabd24Esta vulnerabilidad fue reportada por Łukasz Rybak.
Este CVE fue divulgado de manera responsable siguiendo prácticas de divulgación coordinada de vulnerabilidades. La información proporcionada aquí es solo con fines educativos y defensivos.