Clicky

Descubren error crítico en un paquete de NPM con millones de descargas semanales

Paquete NPM

Llamado 'Pac-Resolver', es muy popular y se usa en todas partes

Un paquete de NPM ampliamente utilizado llamado 'Pac-Resolver' para el lenguaje de programación JavaScript se corrigió con una solución para una vulnerabilidad de ejecución remota de código de alta gravedad que podría abusarse para ejecutar código malicioso dentro de las aplicaciones Node.js cada vez que se envían solicitudes HTTP.

La falla, registrada como CVE-2021-23406, tiene una calificación de gravedad de 8.1 en el sistema de puntuación de vulnerabilidades CVSS y afecta a las versiones Pac-Resolver anteriores a la 5.0.0.

Un archivo de configuración automática de proxy (PAC) es una función de JavaScript que determina si las solicitudes del navegador web deben enrutarse directamente al destino o enviarse a un servidor proxy web para un nombre de host determinado. Los archivos PAC son la forma en que se distribuyen las reglas de proxy en entornos empresariales.

"Este paquete se usa para el soporte de archivos PAC en Pac-Proxy-Agent, que se usa a su vez en Proxy-Agent, que luego se usa en todas partes como el paquete estándar para la autodetección y configuración de proxy HTTP en Node .js ", dijo Tim Perry en un artículo publicado a fines del mes pasado. "Es muy popular: Proxy-Agent se usa en todas partes, desde el kit de herramientas CDK de AWS hasta el SDK de Mailgun y la CLI de Firebase".

CVE-2021-23406 tiene que ver con cómo Pac-Proxy-Agent no protege los archivos PAC correctamente, lo que da como resultado un escenario en el que se puede abusar de un archivo PAC que no es de confianza para salir por completo del entorno aislado (sandbox) y ejecutar código arbitrario en el sistema operativo subyacente. Sin embargo, esto requiere que el atacante resida en la red local, tenga la capacidad de alterar el contenido del archivo PAC o lo encadene con una segunda vulnerabilidad para alterar la configuración del proxy.

"Este es un ataque bien conocido contra el módulo de VM y funciona porque Node no aísla completamente el contexto de la 'sandbox', porque en realidad no está tratando de proporcionar un aislamiento serio", dijo Perry. "La solución es simple: usar un sandbox real en lugar del módulo integrado de VM".

Red Hat, en un aviso independiente, dijo que el paquete vulnerable se envía con su producto Advanced Cluster Management para Kubernetes, pero señaló que "actualmente no está al tanto del vector que desencadena la vulnerabilidad en el componente afectado", además el componente afectado está protegido por la autenticación del usuario, lo que reduce el potencial impacto de esta vulnerabilidad".

Jesus_Caceres