Alerta crítica: Se ha publicado la vulnerabilidad CVE-2026-94107, que afecta a NivoCart hasta la versión 2.4.0. Esta falla permite a un atacante que conozca la dirección de correo electrónico de un administrador predecir el token de restablecimiento de contraseña y obtener acceso total al panel de administración sin autenticación previa. La puntuación CVSS es de 9.2 (Crítica) y se recomienda aplicar las mitigaciones publicadas por el fabricante de forma inmediata.

Resumen ejecutivo
| CVE | CVE-2026-94107 |
|---|---|
| Fabricante | nivocart |
| Producto | nivocart |
| Fecha de publicación | 2026-09-20 |
| Severidad | CRITICAL |
| Puntuación CVSS | 9.2 (CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) |
| Prioridad | 185 (según RyzerBot) |
| Acción recomendada | Revisar el aviso oficial del fabricante y aplicar la actualización o mitigación publicada. |
Qué es la vulnerabilidad
CVE-2026-94107 es una vulnerabilidad de token de restablecimiento de contraseña predecible en el producto NivoCart, una plataforma de comercio electrónico. La falla se localiza en el endpoint forgotten.php del panel de administración, donde se generan los códigos de recuperación de contraseña.
El problema radica en el método de generación de dichos tokens. Según la descripción técnica publicada, el código de recuperación se construye de la siguiente manera:
substr(md5(mt_rand()), 0, 10)
Esta implementación presenta dos debilidades graves:
- Uso de un generador de números pseudoaleatorios débil: la función
mt_rand()no es criptográficamente segura. Un atacante con conocimientos técnicos puede predecir la salida de este generador si conoce o puede inferir la semilla utilizada, o mediante análisis estadístico de las salidas observadas. - Truncamiento excesivo: el hash MD5 completo se reduce a solo 10 caracteres hexadecimales, lo que equivale a 40 bits de entropía. Combinado con la debilidad del generador, el espacio de búsqueda efectivo se reduce drásticamente, haciendo factible la predicción o fuerza bruta del token.
Para explotar esta vulnerabilidad, el atacante solo necesita conocer la dirección de correo electrónico de una cuenta de administrador. El flujo de ataque sería el siguiente:
- Solicitar un restablecimiento de contraseña para la cuenta del administrador a través del endpoint
forgotten.php. - Predecir o calcular el token de recuperación generado, aprovechando la debilidad del generador pseudoaleatorio.
- Utilizar el token predecido para restablecer la contraseña del administrador y acceder al panel de control con privilegios administrativos completos.
Además, la descripción de la vulnerabilidad indica que no existe limitación de velocidad (rate limiting) ni expiración del token, lo que facilita aún más el ataque, permitiendo múltiples intentos sin restricciones temporales.
La debilidad subyacente está clasificada como CWE-338 (Uso de un generador de números pseudoaleatorios criptográficamente débil) y el tipo de problema se describe como «Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)».
Esta vulnerabilidad afecta a todas las versiones de NivoCart hasta la 2.4.0 inclusive, según los datos publicados por CVE.org. No se han publicado versiones afectadas adicionales ni rangos específicos más allá de esta versión máxima.
Productos y versiones vulnerables
La vulnerabilidad CVE-2026-94107 afecta al producto NivoCart del fabricante nivocart. Según la información publicada por CVE.org, todas las versiones del producto hasta la 2.4.0 inclusive están afectadas. No se ha publicado información sobre versiones anteriores o posteriores que puedan estar exentas del problema.
| Producto | Fabricante | Versiones afectadas | Estado |
|---|---|---|---|
| NivoCart | nivocart | Hasta 2.4.0 inclusive | Afectado |
No se ha publicado información sobre parches o versiones corregidas en las fuentes consultadas.
Impacto y riesgo
Esta vulnerabilidad ha sido clasificada como CRÍTICA con una puntuación CVSS de 9.2 según el vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. El vector indica que el ataque se realiza remotamente (AV:N), sin requerir privilegios previos (PR:N) ni interacción del usuario (UI:N). Aunque la complejidad del ataque es alta (AC:H), el impacto sobre la confidencialidad, integridad y disponibilidad es alto (VC:H, VI:H, VA:H).
El fallo reside en el endpoint forgotten.php, que genera códigos de recuperación de contraseña utilizando substr(md5(mt_rand()), 0, 10). Esta implementación presenta dos problemas graves:
- Uso de un generador de números pseudoaleatorios criptográficamente débil (CWE-338): la función
mt_rand()no es adecuada para generar tokens de seguridad. - Tokens predecibles: un atacante que conozca la dirección de correo electrónico de un administrador puede solicitar un restablecimiento de contraseña y predecir el token generado, obteniendo acceso administrativo a la cuenta.
Además, el proceso no implementa limitación de velocidad ni expiración de los tokens, lo que facilita los intentos repetidos de adivinación. El impacto práctico es la compromisión total de la cuenta de administrador y, por extensión, del sistema NivoCart completo, incluyendo datos, configuración y disponibilidad del servicio.
Estado de explotación conocida
Las fuentes consultadas (NVD y CVE.org) no publican información explícita sobre explotación activa de esta vulnerabilidad en entornos reales. No se han encontrado referencias a campañas de ataque, exploits públicos o pruebas de concepto funcionales en el contexto proporcionado.
Sin embargo, la naturaleza de la vulnerabilidad —tokens predecibles generados con un PRNG débil— hace que su explotación sea técnicamente viable para un atacante con conocimientos suficientes. La ausencia de informes de explotación no debe interpretarse como una garantía de seguridad; se recomienda aplicar las mitigaciones disponibles con carácter urgente.
Indicadores de compromiso (IOC)
No se han extraído indicadores de compromiso estructurados de las fuentes consultadas. El campo enrichment.ioc aparece vacío, por lo que no se dispone de IOC publicados para esta vulnerabilidad. No deben inventarse indicadores que no provengan de fuentes verificadas.
Se recomienda monitorizar los registros de acceso al endpoint forgotten.php y los intentos de autenticación administrativa, prestando especial atención a patrones anómalos de solicitudes de restablecimiento de contraseña.
Cómo comprobar si estás afectado
Para determinar si tu instalación de NivoCart es vulnerable a CVE-2026-94107, debes verificar la versión del software y revisar el código fuente de los archivos implicados. La vulnerabilidad afecta a todas las versiones hasta la 2.4.0 inclusive.
1. Verifica la versión instalada
Accede al panel de administración de NivoCart y consulta la sección de información del sistema o el archivo config.php para conocer la versión exacta. Si es igual o anterior a 2.4.0, la instalación es vulnerable.
2. Inspecciona el código fuente
La vulnerabilidad reside en dos archivos concretos. Revisa su contenido para confirmar si se utiliza el generador de tokens inseguro:
upload/admin/controller/common/forgotten.php(líneas 20-34): busca la llamadasubstr(md5(mt_rand()), 0, 10)que genera el código de recuperación.upload/admin/model/user/user.php(líneas 119-123): verifica cómo se almacena y procesa el token de recuperación.
Si encuentras la función mt_rand() combinada con md5() para generar tokens de restablecimiento, la instalación es vulnerable. También debes comprobar si existe algún mecanismo de caducidad o limitación de intentos en el endpoint forgotten.php; su ausencia agrava el riesgo.
3. Comprueba los registros de actividad
Revisa los registros del servidor y del panel de administración en busca de solicitudes sospechosas al endpoint forgotten.php, especialmente múltiples peticiones de restablecimiento de contraseña para la misma cuenta de administrador en un corto período de tiempo. Este comportamiento podría indicar un intento de explotación.
Mitigación y actualización
En el momento de la publicación de esta alerta, no se ha publicado una versión corregida de NivoCart que aborde específicamente CVE-2026-94107. Las referencias oficiales incluyen el repositorio del proyecto y el informe de vulnerabilidad, pero no indican la existencia de un parche disponible.
Mientras tanto, se recomienda aplicar las siguientes medidas de mitigación temporal:
- Restringir el acceso al endpoint
forgotten.php: limita las direcciones IP que pueden acceder al panel de administración mediante reglas de firewall o listas de control de acceso (ACL). - Deshabilitar el restablecimiento de contraseña por correo electrónico: si no es imprescindible, desactiva temporalmente esta funcionalidad en la configuración del panel.
- Monitorizar los registros de autenticación: presta especial atención a los intentos de restablecimiento de contraseña y a los inicios de sesión desde direcciones IP desconocidas.
- Implementar un proxy inverso con limitación de velocidad: configura reglas de rate limiting en el servidor web o en un proxy inverso para mitigar los intentos de fuerza bruta sobre el token.
- Cambiar las contraseñas de administrador periódicamente: aunque no mitiga la vulnerabilidad directamente, reduce la ventana de exposición si un atacante logra obtener acceso.
Dado que el token se genera con
mt_rand()y se trunca a 10 caracteres hexadecimales, el espacio de búsqueda es de 1.048.576 combinaciones. Un atacante con acceso a la dirección de correo del administrador podría predecir el token en un tiempo razonable sin limitación de intentos.
Consulta el aviso oficial del fabricante y el informe de VulnCheck para obtener actualizaciones sobre la disponibilidad de parches. La referencia al problema en el repositorio oficial (issue #25) es el punto de seguimiento recomendado.
Checklist para administradores
Utiliza esta lista para evaluar y mitigar el riesgo en tus instalaciones de NivoCart:
- ☐ He verificado que la versión de NivoCart instalada es igual o anterior a 2.4.0.
- ☐ He inspeccionado
forgotten.phpy confirmado el uso desubstr(md5(mt_rand()), 0, 10). - ☐ He revisado
user.phppara comprobar el almacenamiento del token de recuperación. - ☐ He confirmado que no existe limitación de intentos ni caducidad en el endpoint de restablecimiento.
- ☐ He restringido el acceso al panel de administración mediante reglas de firewall o ACL.
- ☐ He configurado rate limiting en el servidor web o proxy inverso.
- ☐ He revisado los registros de actividad en busca de intentos de explotación.
- ☐ He notificado al equipo de seguridad interno sobre la exposición potencial.
- ☐ He establecido un mecanismo de monitorización para detectar la publicación de un parche oficial.
- ☐ He documentado las medidas de mitigación aplicadas y las fechas de revisión.
Preguntas frecuentes
¿Qué versión de NivoCart está afectada?
Todas las versiones de NivoCart hasta la 2.4.0 inclusive están afectadas. No se ha publicado información sobre versiones posteriores corregidas.
¿Qué puede hacer un atacante si explota esta vulnerabilidad?
Un atacante que conozca la dirección de correo electrónico de un administrador podría solicitar un restablecimiento de contraseña, predecir el token generado y obtener acceso completo a la cuenta administrativa, comprometiendo la integridad y disponibilidad del sistema.
¿Por qué el token es predecible?
El token se genera usando mt_rand(), un generador de números pseudoaleatorios criptográficamente débil, combinado con md5() y truncado a 10 caracteres. Esto reduce el espacio de búsqueda a aproximadamente un millón de combinaciones, haciéndolo vulnerable a ataques de fuerza bruta.
¿Existe un parche disponible?
No. Las fuentes consultadas no publican información sobre una versión corregida. Se recomienda seguir el issue #25 en el repositorio oficial de NivoCart y el aviso de VulnCheck para conocer las actualizaciones.
¿La vulnerabilidad afecta a la tienda en línea o solo al panel de administración?
La vulnerabilidad se encuentra en el endpoint forgotten.php del panel de administración. Sin embargo, el impacto se extiende a todo el sistema, ya que el compromiso de una cuenta administrativa permite modificar la configuración, los productos y los datos de la tienda.
¿Qué debo hacer si sospecho que mi instalación ha sido comprometida?
Revisa los registros de autenticación y actividad del panel, cambia todas las contraseñas de administrador, verifica la integridad de los archivos del sistema y considera restaurar desde una copia de seguridad anterior al posible compromiso. Contacta con tu equipo de respuesta a incidentes.
Fuentes oficiales
Para obtener información detallada y actualizaciones sobre CVE-2026-94107, consulta las siguientes referencias:
- NVD – CVE-2026-94107
- Repositorio oficial de NivoCart
- Código vulnerable en forgotten.php
- Código vulnerable en user.php
- Issue #25 en el repositorio oficial
- Aviso de VulnCheck
Mantente atento a las actualizaciones del fabricante y aplica el parche oficial en cuanto esté disponible. La monitorización continua y la aplicación de medidas de mitigación son esenciales para proteger tu instalación.

















