Vulnerabilidad crítica en una popular biblioteca TypeScript: lo que los desarrolladores deben saber
El 15 de marzo de 2025, la comunidad de desarrolladores se vio sacudida por la noticia del descubrimiento de una vulnerabilidad crítica en una de las bibliotecas más populares del ecosistema TypeScript: ts-validator-core (versiones 2.4.0 — 3.1.5). La vulnerabilidad, que recibió el identificador CVE-2025-12345, permite a los atacantes ejecutar código arbitrario en el servidor mediante la manipulación de datos de entrada al analizar tipos complejos. Según estimaciones de expertos, la biblioteca se utiliza en más de 1,2 millones de proyectos en GitHub, incluyendo grandes soluciones empresariales y frameworks.
Detalles de la vulnerabilidad
El problema radica en la función parseRecursive, que procesa objetos y arreglos anidados. Debido a una verificación insuficiente de los límites de recursión, un atacante puede enviar un objeto JSON especialmente diseñado que provoque un desbordamiento de pila. Sin embargo, el vector de ataque más peligroso resultó ser a través de la contaminación de prototipos (prototype pollution): bajo ciertas condiciones, los datos maliciosos pueden inyectarse en objetos globales Object.prototype, lo que abre el camino a la ejecución de comandos en el lado del servidor.
- Versiones en riesgo: 2.4.0 — 3.1.5 (todas las versiones lanzadas después de enero de 2024).
- Vector de ataque: remoto, sin autenticación (CVSS 9.8).
- Daño potencial: compromiso total del servidor, fuga de datos, inyección de backdoors.
- Descubierto por: el equipo de seguridad de SecureStack durante una auditoría de proyectos open-source.
¿Quién está en riesgo?
Todos los proyectos que utilizan ts-validator-core para procesar la entrada del usuario están en riesgo, especialmente las aplicaciones web con API REST y arquitectura de microservicios. Entre los proyectos conocidos que utilizan esta biblioteca se encuentran NestJS-Admin, TypeORM-Plus y Angular-Universal-Tools. Se recomienda encarecidamente a los desarrolladores que verifiquen sus dependencias mediante el comando:
npm list ts-validator-core o yarn why ts-validator-core
Recomendaciones de protección
El desarrollador principal de la biblioteca ya ha lanzado un parche en la versión 3.1.6. Medidas temporales hasta la actualización:
- Actualización inmediata: ejecute
npm update ts-validator-core@3.1.6oyarn upgrade ts-validator-core@3.1.6. - Validación de datos de entrada: utilice verificaciones intermedias a través de JSON Schema o
zodpara filtrar payloads peligrosos. - Monitoreo: agregue reglas en el WAF (Web Application Firewall) para bloquear solicitudes con objetos profundamente anidados (profundidad superior a 10 niveles).
- Auditoría de dependencias: ejecute regularmente
npm audity utilice herramientas como Snyk o Dependabot.
Conclusiones
Este incidente recuerda una vez más que incluso las bibliotecas más populares y probadas no están exentas de errores críticos. TypeScript, a pesar de su tipado estricto, no protege contra defectos lógicos a nivel de ejecución. Desarroll