Npm-Schwachstelle "Package Planting": Vertrauen ist gut, Kontrolle ist besser

Eine als Package Planting bezeichnete Sicherheitslücke im Paketmanager npm erlaubte laut Aquasec, die Vertrauenswürdigkeit bekannter Maintainer zu missbrauchen.

In Pocket speichern vorlesen Druckansicht 17 Kommentare lesen
Npm-Schwachstelle: Vertrauen ist gut, Kontrolle ist besser

(Bild: Magnetic Mcc / Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Matthias Parbel
Inhaltsverzeichnis

Paketierte Programmcode-Komponenten sind ein essenzieller Baustein in fast jeder Software Supply Chain – und daher auch ein willkommenes Ziel für Angreifer. Eine neue Vorgehensweise, Schadcode in Packages einzuschleusen und zu verbreiten, betrifft den Paketmanager npm, wie das Team Nautilus von Aquasec nun mitgeteilt hat. Die Security-Fachleute hatten eine Schwachstelle in den administrativen Einstellungen von npm entdeckt.

Die von Team Nautilus als "Package Planting" bezeichnete Lücke ermöglicht es Angreifern, mit Schadcode präparierte Pakete als legitim zu platzieren und Entwicklerinnen und Entwickler dadurch zur deren Installation zu verleiten. Dabei profitieren sie von unzureichenden Sicherheitseinstellungen des Paketmanagers: Npm erlaubte es bisher jeder Nutzerin und jedem Nutzer, eigenen Paketen beliebige weitere Maintainer hinzuzufügen – und das ohne deren Zustimmung einholen zu müssen. So ließen sich beispielweise die Eigner der populären JavaScript-Library lodash – Mathias, jdalton und bnjmnt4n – als Maintainer hinzufügen, um einem npm-Paket Vertrauenswürdigkeit zu verleihen.

Die Unzulänglichkeit in den npm-Richtlinien ließe sich Team Nautilus zufolge darüber hinaus nutzen, um einzelne Entwicklerinnen oder Entwickler vorsätzlich zu diskreditieren. Dazu müssten Angreifer lediglich die anvisierten Developer als Maintainer dem mit Schadcode präparierten Paket zuweisen, während der eigentliche Urheber sich als Maintainer davon zurückzieht. Anschließend ließen sich dann die "unfreiwilligen" neuen Maintainer des platzierten Package als Verbreiter von Schadcode diffamieren.

Das Package Planting reiht sich damit in die wachsende Zahl von Beispielen für Lieferketten-Angriffe ein, bei denen Schwachstellen in zugelieferten Software-Komponenten zu neuen Sicherheitslücken führen können. Erst kürzlich war npm in die Schlagzeilen geraten, nachdem die Macher hinter dem Paket node-ipc.js Schadcode hinzugefügt hatten, um damit gegen den Ukraine-Krieg zu protestieren. Bereits zu Jahresbeginn machte zudem ein npm-Paket-Entwickler seine eigenen Pakete unbrauchbar, was zu massiven Störungen davon abhängiger Systeme geführt hatte.

Neue Package Maintainer müssen ihrer Rolle nun explizit zustimmen.

(Bild: blog.aquasec.com)

Das von den Aquasec-Mitarbeitenden entdeckte Sicherheitsproblem wurde im Februar im Rahmen des Bug-Bounty-Programms von GitHub auf der Plattform HackerOne gemeldet. Die Verantwortlichen beim Paketmanager npm haben laut der Mitteilung im Aquasec-Blog daraufhin den Fehler umgehend behoben und einen grundsätzlichen Bestätigungsmechanismus für alle neuen Maintainer eines Pakets hinzugefügt. Der offizielle Patch auf npmjs.com erfolgte am 26. April 2022.

(map)