In einem Akt vorsätzlicher Sabotage hat der Entwickler des beliebten NPM-Pakets „node-ipc“ eine neue, manipulierte Version verschickt, um die russische Invasion in der Ukraine zu verurteilen, was Bedenken hinsichtlich der Sicherheit in der Open-Source- und Software-Lieferkette weckt.

Die vom Maintainer RIAEvangelist vorgenommenen Änderungen betrafen die Versionen 10.1.1 und 10.1.2 der Bibliothek und bewirkten ein unerwünschtes Verhalten, indem sie auf Nutzer mit IP-Adressen in Russland oder Weißrussland abzielten und beliebige Dateiinhalte löschten und durch ein Herz-Emoji ersetzten.

Node-ipc ist ein bekanntes Node-Modul für die lokale und entfernte Interprozesskommunikation (IPC) mit Unterstützung für Linux, macOS und Windows. Es wurde über 1,1 Millionen Mal pro Woche heruntergeladen.

„Ein ganz klarer Missbrauch und ein kritischer Sicherheitsvorfall in der Lieferkette wird für jedes System eintreten, auf dem dieses NPM-Paket aufgerufen wird, wenn es mit einem geografischen Standort in Russland oder Weißrussland übereinstimmt“, so Synk-Forscher Liran Tal in einer Analyse.

Die Schwachstelle trägt die Kennung CVE-2022-23812 und wird im CVSS-Schwachstellen-Scoring-System mit 9,8 von 10 Punkten bewertet. Die Änderungen am Schadcode wurden am 7. März veröffentlicht (Version 10.1.1), ein zweites Update erfolgte 10 Stunden später am selben Tag (Version 10.1.1).

Interessanterweise wurden die zerstörerischen Änderungen zwar mit der Version 10.1. aus der Bibliothek entfernt, aber weniger als vier Stunden später wurde ein größeres Update veröffentlicht (Version 11.0.0), das eine weitere Abhängigkeit namens „peacenotwar“ importierte, die ebenfalls von RIAEvangelist als eine Form des „gewaltlosen Protests gegen Russlands Aggression“ veröffentlicht wurde.

„Jedes Mal, wenn die Funktionalität des Moduls node-ipc aufgerufen wird, gibt es eine Nachricht aus dem Modul peacenotwar an STDOUT aus und legt eine Datei im Desktop-Verzeichnis des Benutzers ab, deren Inhalt sich auf die aktuelle Kriegssituation zwischen Russland und der Ukraine bezieht“, erklärt Tal.

Die neueste Version von node-ipc – 11.1.0 – erhöht die Version des Pakets „peacenotwar“ von 9.1.3 auf 9.1.5 und bündelt die NPM-Bibliothek „colors“, entfernt aber auch die STDOUT-Konsolenmeldungen.

Es ist erwähnenswert, dass „colors“ und ein weiteres Paket namens „faker“ Anfang Januar dieses Jahres von ihrem Entwickler Marak Squires absichtlich sabotiert wurden, indem er Endlosschleifen in den Quellcode einfügte und damit andere Anwendungen, die von den Bibliotheken abhängig waren, zerstörte.

Laut Bleeping Computer, das zuerst über die Korruption berichtete, sollen die Änderungen eine Vergeltungsmaßnahme gewesen sein. Der Entwickler erklärte: „Bei allem Respekt, ich werde nicht länger Fortune 500s (und andere kleinere Unternehmen) mit meiner kostenlosen Arbeit unterstützen.

Die Idee, beliebte Module als „Protestware“ zu verwenden, um zerstörerische Nutzdaten zu verbreiten und die Lieferkette zu kompromittieren, birgt die Gefahr, das Vertrauen in Open-Source-Software zu untergraben.

„Bei diesem Sicherheitsvorfall handelt es sich um zerstörerische Handlungen zur Beschädigung von Dateien auf der Festplatte durch einen Maintainer und dessen Versuche, diese vorsätzliche Sabotage in verschiedenen Formen zu verstecken und zu wiederholen“, so Tal. „Auch wenn es sich hier um einen Angriff mit Protestmotiven handelt, so zeigt er doch ein größeres Problem auf, mit dem die Software-Lieferkette konfrontiert ist: Die transitiven Abhängigkeiten in deinem Code können einen großen Einfluss auf deine Sicherheit haben.