Vulnerabilidad en Decidim (CVE-2023-51447)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-79
Neutralización incorrecta de la entrada durante la generación de la página web (Cross-site Scripting)
Fecha de publicación:
20/02/2024
Última modificación:
16/12/2024
Descripción
Decidim es un framework de democracia participativa. A partir de la versión 0.27.0 y antes de las versiones 0.27.5 y 0.28.0, la función de carga dinámica de archivos está sujeta a posibles ataques de Cross-site scripting en caso de que el atacante logre modificar los nombres de los archivos de los registros que se cargan en el servidor. Esto aparece en secciones donde el usuario controla los cuadros de diálogo de carga de archivos y tiene el conocimiento técnico para cambiar los nombres de los archivos a través del endpoint de carga dinámica. Por lo tanto, creo que requeriría que el atacante controlara toda la sesión del usuario en particular, pero en cualquier caso, esto debe solucionarse. La explotación exitosa de esta vulnerabilidad requeriría que el usuario haya subido exitosamente un blob de archivos al servidor con un nombre de archivo malicioso y luego tenga la posibilidad de dirigir al otro usuario a la página de edición del registro donde se adjunta el archivo adjunto. Los usuarios pueden crear ellos mismos las solicitudes de carga directa controlando el nombre del archivo que se almacena en la base de datos. El atacante puede cambiar el nombre del archivo, por ejemplo, a `` si sabe cómo elaborar estas solicitudes por sí mismo. Y luego ingrese el ID del blob devuelto en las entradas del formulario manualmente modificando la fuente de la página de edición. Las versiones 0.27.5 y 0.28.0 contienen un parche para este problema. Como workaround, deshabilite las cargas dinámicas para la instancia, por ejemplo, desde propuestas.
Impacto
Puntuación base 3.x
6.30
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:decidim:decidim:*:*:*:*:*:ruby:*:* | 0.27.0 (incluyendo) | 0.27.5 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/decidim/decidim/commit/aaf72787cf18beeeb6a771c1f7cbb7654b073423
- https://github.com/decidim/decidim/pull/11612
- https://github.com/decidim/decidim/releases/tag/v0.27.5
- https://github.com/decidim/decidim/releases/tag/v0.28.0
- https://github.com/decidim/decidim/security/advisories/GHSA-9w99-78rj-hmxq
- https://github.com/rails/rails/blob/a967d355c6fee9ad9b8bd115d43bc8b0fc207e7e/activestorage/app/controllers/active_storage/direct_uploads_controller.rb#L14
- https://github.com/decidim/decidim/commit/aaf72787cf18beeeb6a771c1f7cbb7654b073423
- https://github.com/decidim/decidim/pull/11612
- https://github.com/decidim/decidim/releases/tag/v0.27.5
- https://github.com/decidim/decidim/releases/tag/v0.28.0
- https://github.com/decidim/decidim/security/advisories/GHSA-9w99-78rj-hmxq
- https://github.com/rails/rails/blob/a967d355c6fee9ad9b8bd115d43bc8b0fc207e7e/activestorage/app/controllers/active_storage/direct_uploads_controller.rb#L14