Vulnerabilidad en Decidim (CVE-2023-48220)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
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.4.rc3 y antes de la versión 2.0.9 de la gema `devise_invitable`, la función de invitaciones permite a los usuarios aceptar la invitación por un período de tiempo ilimitado a través de la función de restablecimiento de contraseña. Este problema crea dependencias vulnerables a partir de la versión 0.0.1.alpha3 y anteriores a las versiones 0.26.9, 0.27.5 y 0.28.0 de las gemas `decidim`, `decidim-admin` y `decidim-system`. Cuando se utiliza la función de restablecimiento de contraseña, la gema `devise_invitable` siempre acepta la invitación pendiente si el usuario ha sido invitado. La única verificación realizada es si el usuario ha sido invitado pero el código no garantiza que la invitación pendiente siga siendo válida según lo definido por el período de vencimiento de `invite_for`. Decidim establece esta configuración en `2.weeks` por lo que se debe respetar esta configuración. El error está en la gema `devise_invitable` y debería solucionarse allí y la dependencia debería actualizarse en Decidim una vez que la solución esté disponible. `devise_invitable` a la versión `2.0.9` y superiores solucionan este problema. Las versiones 0.26.9, 0.27.5 y 0.28.0 de las gemas `decidim`, `decidim-admin` y `decidim-system` contienen esta solución. Como workaround, las invitaciones se pueden cancelar directamente desde la base de datos.
Impacto
Puntuación base 3.x
5.70
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:decidim:decidim:*:*:*:*:*:ruby:*:* | 0.0.2 (incluyendo) | 0.26.9 (excluyendo) |
cpe:2.3:a:decidim:decidim:*:*:*:*:*:ruby:*:* | 0.27.0 (incluyendo) | 0.27.5 (excluyendo) |
cpe:2.3:a:decidim:decidim:0.0.1:-:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha3:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha4:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha5:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha6:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha7:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha8:*:*:*:ruby:*:* | ||
cpe:2.3:a:decidim:decidim:0.0.1:alpha9:*:*:*:ruby:*:* | ||
cpe:2.3:a:scambra:devise_invitable:*:*:*:*:*:ruby:*:* | 0.4.1 (incluyendo) | 2.0.9 (excluyendo) |
cpe:2.3:a:scambra:devise_invitable:0.4.0:-:*:*:*:ruby:*:* | ||
cpe:2.3:a:scambra:devise_invitable:0.4.0:rc3:*:*:*:ruby:*:* | ||
cpe:2.3:a:scambra:devise_invitable:0.4.0:rc4:*:*:*:ruby:*:* | ||
cpe:2.3:a:scambra:devise_invitable:0.4.0:rc5:*:*:*:ruby:*:* |
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/blob/d2d390578050772d1bdb6d731395f1afc39dcbfc/decidim-core/config/initializers/devise.rb#L134
- https://github.com/decidim/decidim/commit/073e60e2e4224dd81815a784002ebba30f2ebb34
- https://github.com/decidim/decidim/commit/b12800717a689c295a9ea680a38ca9f823d2c454
- https://github.com/decidim/decidim/releases/tag/v0.26.9
- 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-w3q8-m492-4pwp
- https://github.com/scambra/devise_invitable/blob/41f58970ff76fb64382a9b9ea1bd530f7c3adab2/lib/devise_invitable/models.rb#L198
- https://github.com/scambra/devise_invitable/commit/94d859c7de0829bf63f679ae5dd3cab2b866a098
- https://github.com/decidim/decidim/blob/d2d390578050772d1bdb6d731395f1afc39dcbfc/decidim-core/config/initializers/devise.rb#L134
- https://github.com/decidim/decidim/commit/073e60e2e4224dd81815a784002ebba30f2ebb34
- https://github.com/decidim/decidim/commit/b12800717a689c295a9ea680a38ca9f823d2c454
- https://github.com/decidim/decidim/releases/tag/v0.26.9
- 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-w3q8-m492-4pwp
- https://github.com/scambra/devise_invitable/blob/41f58970ff76fb64382a9b9ea1bd530f7c3adab2/lib/devise_invitable/models.rb#L198
- https://github.com/scambra/devise_invitable/commit/94d859c7de0829bf63f679ae5dd3cab2b866a098