Die Versionsverwaltung GitHub erhielt in einem ihrer Bug-Bounty-Programme zwischen dem 21. Juli und dem 13. August 2021 Hinweise auf Sicherheitslücken in den Node.js Packages tar
und @npmcli/arborist
. GitHub zufolge laden Entwicklerinnen und Entwickler tar
wöchentlich millionenfach herunter, zumal es als Core Dependency tausender anderer Projekte dient. @npmcli/arborist
ist eine Core Dependency des npm CLI und kommt bei der Verwaltung von node_modules
-Trees zum Einsatz. Das npm CLI soll sicherstellen, dass die Inhalte eines Pakets bei dessen Installation nur in dem entsprechenden Ordner innerhalb der node_modules
-Verzeichnishierarchie landen. Einige der gefundenen Sicherheitslücken sind jedoch in der Lage, diese Grenze zu überschreiten: Bei der Nutzung von tar
zur Extrahierung nicht vertrauenswürdiger tar
-Dateien sowie bei Nutzung des npm CLI zur Installation nicht vertrauenswürdiger npm-Pakete können sie zum unerwarteten Überschreiben von Dateien und der Ausführung willkürlichen Codes führen. Nach weiteren Untersuchungen hat GitHub insgesamt sieben Common Vulnerabilities and Exposures (CVE) in Bezug auf tar
und @npmcli/arborist
bekannt gegeben:
- CVE-2021-32803
- CVE-2021-32804
- CVE-2021-37701
- CVE-2021-37712
- CVE-2021-37713
- CVE-2021-39134
- CVE-2021-39135
GitHub, das vor einem Jahr den JavaScript-Paketmanager npm übernahm und seit 2018 selbst zu Microsoft gehört, hat Fixes für die Schwachstellen eingeführt und 16,7 Millionen Dependabot Alerts sowie 1,8 Millionen Benachrichtigungen an betroffene Nutzerinnen und Nutzer versendet. Im GitHub-Blog finden sich zudem konkrete Handlungsanweisungen je nach Betroffenheitslage, beispielsweise beziehen sich vier der CVEs auf das npm CLI. Dagegen soll ein Upgrade des npm CLI auf Version 6.14.15, 7.21.0 oder höher Abhilfe schaffen. Wer Node.js zur npm-Installation verwendet, sollte die neueste Version von Node.js 12, 14 oder 16 installieren, und wer eine tar
-Dependency nutzt, sollte tar
auf Version 4.4.19, 5.0.11, 6.1.10 oder höher aktualisieren. Aufgrund der Deprecation des 3er-Zweigs von tar
soll Version 6 genutzt werden. Auch das npm-Team reagierte mit einem Tweet, in dem es npm-Nutzer auffordert, Node.js auf die Version 12, 14 oder 16 oder npm auf Version 6 oder 7 zu aktualisieren, ebenso wie alle Dependencies auf tar
. Weitere Hintergründe und Details zu allen CVEs bietet der GitHub-Blog.