Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en devise de heartcombo (CVE-2026-32700)

Gravedad CVSS v4.0:
MEDIA
Tipo:
CWE-362 Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
18/03/2026
Última modificación:
26/03/2026

Descripción

Devise es una solución de autenticación para Rails basada en Warden. Antes de la versión 5.0.3, una condición de carrera en el módulo Confirmable de Devise permite a un atacante confirmar una dirección de correo electrónico que no posee. Esto afecta a cualquier aplicación Devise que utilice la opción 'reconfirmable' (la predeterminada al usar Confirmable con cambios de correo electrónico). Al enviar dos solicitudes concurrentes de cambio de correo electrónico, un atacante puede desincronizar los campos `confirmation_token` y `unconfirmed_email`. El token de confirmación se envía a un correo electrónico que el atacante controla, pero el `unconfirmed_email` en la base de datos apunta a la dirección de correo electrónico de una víctima. Cuando el atacante utiliza el token, el correo electrónico de la víctima se confirma en la cuenta del atacante. Esto está parcheado en Devise v5.0.3. Los usuarios deben actualizar lo antes posible. Como solución alternativa, las aplicaciones pueden sobrescribir un método específico de los modelos de Devise para forzar que `unconfirmed_email` se persista cuando no ha cambiado. Tenga en cuenta que Mongoid no parece respetar que `will_change!` debería forzar que el atributo se persista, incluso si realmente no cambió, por lo que el usuario podría tener que implementar una solución alternativa similar a Devise estableciendo `changed_attributes["unconfirmed_email"] = nil` también.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:heartcombo:devise:*:*:*:*:*:ruby:*:* 5.0.3 (excluyendo)