CVE-2024-0710
- Vulnerabilidad: CVE-2024-0710 (Modificación no autenticada del ID único de envío)
- CVSS: 5.3 (Medio)
- Software: GP Unique ID (gp-unique-id)
- Versiones afectadas: <= 1.5.5
- Versión parcheada: 1.5.6
- Desarrollador: Gravity Wiz
- Investigador: Karl Emil Nikka, Nikka Systems
- Publicado públicamente: 2024-04-10
- Última actualización: 2024-04-18
Resumen
Un remitente de formulario no autenticado puede elegir un valor personalizado para un campo que se supone que siempre debe tener un valor aleatorio o secuencial. Esta vulnerabilidad solo afecta a sitios donde el valor debe ser aleatorio o secuencial por razones legales, funcionales o de seguridad.
Antecedentes
GP Unique ID es un complemento para Gravity Forms. Asigna IDs únicos a las entradas después de un envío exitoso. A diferencia de los IDs reales de la base de datos de las entradas, los GP Unique IDs, en adelante llamados GPUIDs, pueden ser personalizados por el creador del formulario para seguir una sintaxis específica con un número de inicio definido, conjunto de caracteres, longitud, prefijo y sufijo. El GPUID se almacena en un campo personalizado de entrada de Gravity Forms. El campo está oculto en el frontend.
El desarrollador del plugin enumera los siguientes casos de uso comunes para GP Unique ID.
- Proporcionar un número de confirmación o referencia de longitud fija para cada entrada.
- Mantener un número de factura secuencial.
- Generar un código de cupón único que pueda usarse en envíos de formularios posteriores.
- Generar un número único para su uso en sorteos.
La vulnerabilidad
GP Unique ID asigna el GPUID después de que el formulario se haya enviado correctamente, pero solo mientras no haya un valor en el campo. Esto permite que un remitente del formulario establezca un GPUID personalizado al enviar el formulario. Dado que el campo no está vacío, no se almacena ningún GPUID real. Por lo tanto, un visitante puede
- establecer un GPUID que no sigue la sintaxis
- establecer un GPUID que no es secuencial
- establecer un GPUID que no es aleatorio
- establecer un GPUID que ya está asignado a otra entrada.
Parches
Gravity Wiz lanzó una versión parcheada del plugin el 2024-04-09. Los administradores del sitio deben actualizar a la versión parcheada (1.5.6) y, si es relevante, asegurarse de que los envíos anteriores no hayan sido manipulados.
- 2024-01-13 Reporté la vulnerabilidad a Gravity Wiz (según la política de divulgación responsable de 90 días de Project Zero).
- 2024-01-13 Envié la vulnerabilidad al CNA de Wordfence. Rechacé participar en su programa de recompensas por errores.
- 2024-01-15 Gravity Wiz confirmó haber recibido el informe.
- 2024-01-16 Gravity Wiz reconoció la vulnerabilidad y me dijo que lanzarían un parche para la misma.
- 2024-01-19 Wordfence asignó a la vulnerabilidad el ID CVE CVE-2024-0710.
- 2024-02-29 Envié un recordatorio de 45 días a Gravity Wiz.
- 2024-04-01 Envié un recordatorio de que la ventana de divulgación responsable de 90 días finalizaría en dos semanas.
- 2024-04-07 Gravity Wiz me envió una versión previa al lanzamiento del plugin parcheado.
- 2024-04-09 Gravity Wiz lanzó el plugin parcheado, 87 días después del informe inicial (dentro de la ventana de divulgación responsable de 90 días).