Open Source: Entwickler sabotiert eigene vielfach genutzte NPM-Pakete
Millionenfach genutzte NPM-Pakete und darauf aufbauende Projekte sind nicht mehr nutzbar, weil deren Entwickler sie zerstört hat.
Die Probleme des NPM-Ökosystems mit seinen zahlreichen Paketen und teils unübersichtlichen Abhängigkeiten von Projekten zeigen sich seit Jahren etwa bei Sicherheitsuntersuchungen oder auch durch das Löschen von Paketen. In diese Reihe von Problemen passt nun ein Vorgang, der offenbar gezielt als Sabotage-Akt umgesetzt worden ist: Der Entwickler der millionenfach genutzten NPM-Pakete Colors und Faker, hat diese unbrauchbar gemacht, wie Bleeping Computer zuerst berichtete.
Das Paket Faker wird im NPM-Registry mit fast 2,5 Millionen wöchentlichen Downloads gelistet und besteht in der aktuellen Version aus gar keinem sinnvoll nutzbaren Code mehr. Das Paket Colors mit mehr als 23 Millionen Downloads führt darüber hinaus in eine unendliche Schleife und gibt seltsame Symbole aus, die nicht Teil des ASCII-Zeichensatzes sind.
Das in seiner aktuellen Version nicht mehr nutzbare Colors-Paket wird darüber hinaus von rund 19.000 weiteren NPM-Projekten als direkte Abhängigkeit genutzt. Durch transitive Abhängigkeiten könnte diese auch noch deutlich weiter verbreitet sein. Wenig überraschend finden sich unter den Paketen, die nun von dem Sabotage-Akt betroffen sind, auch vielfach genutzte Anwendungen und Werkzeuge wie etwa AWS' Cloud Development Kit, das von Heroku gepflegte Open CLI Framework oder für Programmierkurse genutzte Bibliotheken.
Änderungen offenbar aus Frust
Die naheliegende Lösung für die von den Änderungen betroffenen Projekte ist, eine vorhergehende Version der NPM-Pakete zu verwenden. Dies wird auch in den entsprechenden Bug-Reports diskutiert und empfohlen. Der Entwickler der NPM-Pakete selbst, der unter dem Namen Marak auftritt, schreibt in den Github-Issues zu Color nur offenbar sarkastisch: "Bitte beachten Sie, dass wir derzeit daran arbeiten, die Situation zu beheben und in Kürze eine Lösung finden werden". Der Github-Account von Marak ist zudem zwischenzeitlich von Github suspendiert worden ist, wie The Verge berichtet.
Bleeping Computer berichtet darüber hinaus, dass die Aktion von Marak im Zusammenhang damit zu stehen scheint, dass dessen Pakete zwar vielfach auch von großen Konzernen genutzt werden, dieser für seine Arbeiten aber nicht bezahlt wird. Bereits zuvor hatte Marak geschrieben, bei der Pflege seiner Pakete zu streiken: Dazu heißt es: "Nehmen Sie dies zum Anlass, mir einen sechsstelligen Jahresvertrag zu schicken oder das Projekt zu teilen und jemand anderen daran arbeiten zu lassen". Auch in seinem inzwischen nicht mehr verfügbaren Blog hatte Marak über Finanzierungsmöglichkeiten seiner Open-Source-Arbeiten nachgedacht.
Der Autor meint dazu:
Der Vorgang verdeutlicht die offensichtlichen Probleme von Open-Source-Projekten. So zeigt dies erneut, dass die unübersichtlichen Abhängigkeiten des NPM-Ökosystems immer wieder zu gravierenden Schwierigkeiten und auch Sicherheitsprobleme führen können. Einen systematischen Lösungsansatz dafür scheint es aber weiterhin nicht zu geben, da ähnliche Probleme immer wieder auftreten.
Ebenso wirft der Sabotage-Akt erneut Fragen zur nachhaltigen Entwicklung von Open-Source-Software auf. Immerhin wird diese oft von Konzernen mit Milliarden US-Dollar Gewinnen genutzt, ohne sich an der Entwicklung zu beteiligen. Auch das hat Auswirkungen auf die Sicherheit, was etwa Heartbleed oder Log4shell gezeigt haben. Die Entwickler müssen sich aber bewusst sein, dass sie ihre Arbeit als Open-Source-Code prinzipbedingt verschenken und diese anders finanziert werden muss. Das gilt für einzelne Maintainer wie Marak ebenso wie für Unternehmen wie MongoDB, Elastic oder weitere. Sich später über ein fehlendes oder mangelhaftes Geschäftsmodell zu beschweren, ist nicht zielführend.
Warum muss alles monetarisiert werden? Entweder mache ich etwas freiwillig und stelle es...
Erstmal widerspräche das jeder aktuellen Lizenz. Dann widerspräche es auch dem Prinzip...
Quasi wie z.B Azer Koçulu 2016 bei left-pad. Das wollte dann aber auch keiner.
Denn einerseits ist verplichtend vorgeschrieben dass man für Alles uns Jedes einen...