Vulnerabilidad crítica de ejecución remota de código en famosa biblioteca de JavaScript Pac-Resolver afecta a millones de aplicaciones. Actualice ahora

Los responsables de la biblioteca de código NPM Pac-Resolver anunciaron la corrección de una vulnerabilidad de ejecución remota de código. Acorde al reporte, la falla fue abordada con la incorporación de un conjunto de actualizaciones que previene los intentos de manipulación maliciosa.

Al parecer, cualquier aplicación utilizando el código vulnerable para el manejo de proxies en Internet podría ser forzada a ejecutar código malicioso a través del envío de información de configuración de proxy, que puede provenir de múltiples fuentes.

Esta semana el desarrollador Tim Perry, creador de una herramienta de desarrollo llamada HTTP Toolkit, detalló el método utilizado para encontrar la falla, identificada como CVE-2021-23406.

Pac-Resolver, con millones de descargas por semana, proporciona soporte para archivos de “Configuración Automática de Proxy” (PAC), que le dicen a los clientes HTTP qué proxy usar para un nombre de host determinado: “Los archivos PAC proporcionan una forma de distribuir reglas de proxy complejas, como un solo archivo que asigna una variedad de URL a diferentes proxies. Se utilizan ampliamente en entornos empresariales y, por lo tanto, a menudo necesitan ser compatibles con cualquier software que pueda ejecutarse en un entorno empresarial”.

Estos archivos pueden distribuirse desde un servidor de red local, a través de HTTP o desde un servidor remoto, un método lo suficientemente común como para que exista un estándar llamado WPAD para automatizar el descubrimiento de archivos PAC.

Al notar que los archivos PAC se remontan a Netscape Navigator 2.0 en 1996, el investigador explicó: “Este es un archivo JavaScript que debe ejecutar para conectarse a Internet, que se carga de forma remota, a menudo de forma insegura y desde una ubicación que puede decidir silenciosamente su red local”.

Una opción sería crear una función de espacio aislado usando el módulo vm de Node.js, incluyendo una advertencia como: “El módulo vm no es un mecanismo de seguridad. No lo use para ejecutar código no verificado”. El problema es que si incluye una función como esta en el código JavaScript del archivo PAC:

Esto apunta a vm.runInContext, que crea un entorno sandbox creado a partir de un parámetro de objeto en el entorno externo de Node.js. Eso proporciona una forma de ejecutar código fuera de la zona de pruebas.

Cualquiera que utilice una versión de Pac-Resolver, Pac-Proxy-Agent o Proxy-Agent anterior a v5.0 es potencialmente vulnerable a la explotación de esta falla, por lo que se deben instalar las actualizaciones requeridas.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).