Die JavaScript-Entwickler-Community ist Ziel einer umfangreichen Lieferketten-Attacke geworden. Der sogenannte Shai-Hulud-Wurm hat sich in über 440 Paketen des npm-Repositories ausgebreitet, dem de-facto-Standard-Paketmanager für Node.js und JavaScript-Projekte.

Das Angriffsvektor funktioniert wie folgt: Angreifer infiltrieren populäre, weit verbreitete npm-Pakete mit schädlichem Code. npm ist ein zentrales System, über das Entwickler wiederverwendbare Bibliotheken und Module verwalten. Wenn ein Paket manipuliert wird, zieht sich jedes Projekt, das dieses Paket als Abhängigkeit verwendet, den schadenfalle Code automatisch herunter. Das ermöglicht eine massive Verbreitungskette mit potenziell tausenden betroffenen Anwendungen.

Eines der Ziele war keyv, eine beliebte Key-Value-Datenbank-Abstraktionslibrary. Die Popularität solcher Kern-Komponenten macht sie zu attraktiven Zielen: Ein Angreifer, der keyv kompromittiert, infiziert automatisch alle Projekte, die keyv direkt oder indirekt via Abhängigkeitsbaum nutzen.

Der Schaden ist potenziell gross. Entwickler müssen überprüfen, ob ihre Projekte die betroffenen Pakete verwenden, und müssen schnell auf sichere Versionen upgraden. Wenn manipulierter Code bereits in Produktionsumgebungen läuft, muss von Durchsuchungen und Forensik ausgegangen werden.

Für Unternehmen, die auf JavaScript und Node.js setzen oder Web-Anwendungen mit npm-Abhängigkeiten betreiben, ist dies ein Anlass, die Supply-Chain-Sicherheit zu überprüfen. Bewährte Praktiken sind: regelmässige Überprüfung von Abhängigkeiten auf bekannte Schwachstellen (etwa mit Tools wie npm audit), Einsatz von Paket-Lock-Files zur Versionskontrolle, und Monitoring von Sicherheits-Advisories für kritische Komponenten.