Una vulnerabilidad clasificada como crítica fue encontrada en mysql2 hasta la versión 3.9.7. La función nestTables del componente Field Handler es afectada por esta vulnerabilidad. Esto tiene repercusión genera la integridad de los datos. Ocasionando la divulgación de información o la denegación de servicio.
El paquete MySQL2, se utiliza ampliamente en aplicaciones web y otros proyectos que requieren conectividad de bases de datos. Sin embargo, las versiones anteriores de mysql2 desde la 3.9.7 son vulnerables a la vulnerabilidad Prototype Pollution.
Dada la amplia adopción de MySQL2 en el ecosistema de Node.js, el impacto potencial de la vulnerabilidad CVE-2024-21512 es significativo. Incontables aplicaciones web, API y servicios de backend que dependen de MySQL2 podrían estar expuestos a esta amenaza.
Una vulnerabilidad que afecta a JavaScript. Prototype Pollution se refiere a la capacidad de inyectar propiedades en los prototipos de construcción de lenguaje JavaScript existentes, como objetos. JavaScript permite alterar todos los atributos Objetos, incluyendo sus atributos como Proto, Constructory Prototype. Un atacante manipula estos atributos para sobrescribir, o contaminar, un prototipo de objeto de aplicación JavaScript del objeto base inyectando otros valores. Propiedades en el Object.prototypeson heredados por todos los objetos JavaScript a través de la cadena prototipo. Lo puede ocasionar la denegación de servicio activando excepciones de JavaScript, o manipula el código fuente de la aplicación para forzar la ruta de código que el atacante inyecta, lo que conduce a la ejecución de código remoto.
CVE-2024-21512: La vulnerabilidad es identificada como CVE-2024-21512. Resulta fácil de explotar. El ataque se puede hacer desde la red. La explotación no necesita ninguna autentificación específica
Hay dos formas principales en que se produce la contaminación de los prototipos:
- Fusión recursiva de objetos no segura
- Definición de propiedades por ruta
Ambientes afectados
Los siguientes ambientes son susceptibles a un ataque de contaminación por prototipos:
- Servidor de aplicación
- Servidor web
- Navegador web
Recomendaciones
- Actualizar a la versión 3.9.8 la cual elimina esta vulnerabilidad.
- Desinstalar las versiones anteriores de mysql2.
Referencias
https://securityonline.info/cve-2024-21512-mysql2-vulnerability-puts-millions-of-downloads-at-risk/
https://security.snyk.io/vuln/SNYK-JS-MYSQL2-6861580