Eine Sicherheitsanfälligkeit im NPM-Paket pac-resolver, das wöchentlich 3 Millionen Downloads verzeichnet.

Im NPM-Paket pac-resolver, das mehr als 3 Millionen Downloads pro Woche verzeichnet, wurde eine Sicherheitsanfälligkeit (CVE-2021-23406) entdeckt, die es ermöglicht, eigenen JavaScript-Code im Kontext der Anwendung auszuführen, wenn HTTP-Anfragen aus Node.js-Projekten gesendet werden, die die Funktion zur automatischen Proxy-Server-Konfiguration unterstützen.

Das Paket pac-resolver analysiert PAC-Dateien, die ein Skript zur automatischen Proxy-Server-Konfiguration enthalten. Die PAC-Datei enthält normalen JavaScript-Code mit der Funktion FindProxyForURL, die die Logik zur Auswahl des Proxys basierend auf dem Host und der angeforderten URL definiert. Das Wesentliche der Schwachstelle besteht darin, dass zur Ausführung dieses JavaScript-Codes im pac-resolver die im Node.js API VM bereitgestellte API verwendet wurde, die es ermöglicht, JavaScript-Code in einem anderen Kontext der V8-Engine auszuführen.

Die angegebene API ist in der Dokumentation ausdrücklich als ungeeignet zum Ausführen nicht vertrauenswürdigen Codes gekennzeichnet, da sie keine vollständige Isolation des ausgeführten Codes bietet und den Zugriff auf den ursprünglichen Kontext ermöglicht. Das Problem wurde in der Version pac-resolver 5.0.0 behoben, die auf die Verwendung der vm2-Bibliothek umgestellt wurde, die ein höheres Maß an Isolation bietet, das für die Ausführung nicht vertrauenswürdiger Codes geeignet ist.

Eine Sicherheitsanfälligkeit im NPM-Paket pac-resolver, das wöchentlich 3 Millionen Downloads verzeichnet.

Bei der Verwendung der anfälligen Version von pac-resolver kann ein Angreifer durch die Übermittlung einer speziell gestalteten PAC-Datei die Ausführung seines JavaScript-Codes im Kontext des Codes des Projekts, das Node.js verwendet, erreichen, wenn in diesem Projekt Bibliotheken verwendet werden, die Abhängigkeiten zu pac-resolver haben. Eine der am häufigsten verwendeten problematischen Bibliotheken ist Proxy-Agent, die in den Abhängigkeiten von 360 Projekten erwähnt wird, darunter urllib, aws-cdk, mailgun.js und firebase-tools, die insgesamt mehr als drei Millionen Downloads pro Woche verzeichnen.

Wenn eine Anwendung, die abhängige Bibliotheken zu pac-resolver hat, eine PAC-Datei lädt, die von einem System mit Unterstützung für das Protokoll zur automatischen Proxy-Konfiguration WPAD bereitgestellt wird, können Angreifer, die Zugriff auf das lokale Netzwerk haben, die Verbreitung von Proxy-Einstellungen über DHCP ausnutzen, um bösartige PAC-Dateien einzuschleusen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4