Popular NPM package Pac-Resolver affected by a critical flaw

Pierluigi Paganini September 14, 2021

Experts found a critical flaw, tracked as CVE-2021-23406, in the popular NPM package ‘Pac-Resolver‘ that has millions of downloads every week.

The development team behind a popular NPM package called ‘Pac-Resolver‘ for the JavaScript programming language fixed a high-severity remote code execution vulnerability tracked as CVE-2021-23406.

The vulnerability can be exploited by remote attackers to run malicious code inside Node.js applications.

The flaw affects Pac-Resolver versions before 5.0.0, it received a CVSS score of 8.1.

A proxy auto-config (PAC) file defines how web browsers and other user agents can automatically choose the appropriate proxy server (access method) for fetching a given URL. The PAC file is a script written in JavaScript that instructs an HTTP client about the proxy to use for a given hostname, using dynamic logic to do so.

“It defines a function in JavaScript, which can be used to find the right proxy for a URL. This is designed to be run in a sandbox, accessing only a few specific useful methods (like host regex matching) that are required. Still, by using those methods these scripts can become very complicated – MDN has some good docs on the features available if you’re interested.” reads a post published by researcher Tim Perry. “PAC files provide a way to distribute complex proxy rules, as a single file that maps a variety of URLs to different proxies. They’re widely used in enterprise environments, and so often need to be supported in any software that might run in an enterprise environment.”

The expert explained that PAC files can be exploited to escape the sandbox and run malicious code on the underlying operating system.

“A flaw was found in nodejs-pac-resolver. A remote code execution can occur with untrusted input, due to unsafe PAC file handling. The highest threat from this vulnerability is to data confidentiality and integrity as well as system availability.” reads an advisory published by Red Hat.

The flaw was addressed in Pac-Resolver v5.0.0, Pac-Proxy-Agent v5.0.0, and Proxy-Agent v5.0.0. The development team addressed it using a real sandbox instead of the VM built-in module.

Follow me on Twitter: @securityaffairs and Facebook

[adrotate banner=”9″][adrotate banner=”12″]

Pierluigi Paganini

(SecurityAffairs – hacking, Pac-Resolver)

[adrotate banner=”5″]

[adrotate banner=”13″]

you might also like

leave a comment