Anzeige
Anzeige
News

NPM: Schwere Lücke erlaubte unauthorisierte Veröffentlichung von Packages

In NPM, dem Paketregister des JavaScript-Ökosystems, haben Sicherheitsexpert:innen zwei Sicherheitslücken festgestellt. Eine davon ermöglichte es offenbar, ohne Berechtigung neue Versionen eines Pakets zu veröffentlichen.

2 Min.
Artikel merken
Anzeige
Anzeige

NPM ist das Paketregister für das JS-Ökosystem. (Grafik: GitHub)

In NPM, dem Package-Registry für JavaScript, wurden zwei Schwachstellen entdeckt. Das hat GitHub am Dienstag in einem Blogpost verkündet. Bereits bei der Übernahme NPMs durch GitHub im März 2020 verkündete der damalige CEO Nat Friedman, man wolle sich verstärkt der Sicherheit des NPM-Ökosystems widmen.

Gravierende Schwachstelle mit unklaren Auswirkungen

Anzeige
Anzeige

Eines der Sicherheitsprobleme wurde im Rahmen von GitHubs Bug-Bounty-Programm entdeckt. Potenziell könnte es gravierende Auswirkungen haben. Die Schwachstelle ermöglichte es potenziellen Angreifer:innen, neue Versionen eines beliebigen Packages von einem beliebigen Konto ohne entsprechende Berechtigungen zu veröffentlichen. Die Schwachstelle wurde laut des Blogposts sechs Stunden nach Eingang der Meldung gepatcht. Im Zeitraum von September 2020 bis heute konnte GitHub keine Anzeichen, dass die Schwachstelle ausgenutzt wurde, feststellen. Für die Zeit davor verfügt GitHub leider über keine Telemetrie-Daten. Es besteht demnach also offenbar durchaus die Möglichkeit, dass die Sicherheitslücke vor September 2020 ausgenutzt wurde; NPM-Pakete also mit Schadcode versehen und neu veröffentlicht wurden. Eine Lösung für diesen zumindest denkbaren Fall bietet der GitHub-Blog nicht an.

Zurückzuführen sei die Schwachstelle auf inkonsistente Autorisierungsprüfungen sowie inkonsistente Datenvalidierungen über mehrere Microservices hinweg, die Anfragen an das NPM-Registry bearbeiteten. Offenbar gab es dabei eine Abweichung, die dazu führte, dass eine Veröffentlichungsanfrage für eine neue Version eines NPM-Pakets autorisiert werden würde, aber potenziell für ein anderes nicht autorisiertes Paket ausgeführt wurde. Gepatcht wurde die Schwachstelle, indem sichergestellt wurde, dass Autorisierung und Veröffentlichung jeweils für dasselbe Paket durchgeführt werden.

Anzeige
Anzeige

Zweite Schwachstelle mittlerweile behoben

Die zweite Schwachstelle wurde offenbar von GitHub selbst bei routinemäßigen Wartungsarbeiten an dem öffentlichen NPM-Replikat replicate.npmjs.com – einem der öffentlichen NPM-Packages des Unternehmens – verursacht. Dabei wurden offenbar Datensätze erstellt und im Changelog veröffentlicht, die die Namen privater NPM-Pakete preisgaben. Weitere Informationen über die Pakete waren offenbar nicht zugänglich. Betroffen waren laut Blogpost Namen privater Pakete im Format @owner/package, die vor dem 20. Oktober 2021 erstellt wurden. Einsehbar waren sie zwischen dem 21. Oktober und dem 29. Oktober. Mittlerweile will GitHub sichergestellt haben, dass in Zusammenhang mit der Replikationsdatenbank keine Datensätze mit Namen privater Pakete erzeugt werden.

Anzeige
Anzeige

2FA und weitere Maßnahmen geplant

Für 2022 verkündet der Blogpost die schrittweise Einführung verpflichtender Zwei-Faktor-Authentifizierung für Maintainer:innen populärer NPM-Pakete. Auch habe GitHub in den vergangenen Monaten verstärkt in die Automatisierung von Monitoring und Analyse neu veröffentlichter NPM-Pakete investiert.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige