In den Abhängigkeiten des npm-Pakets mit dem Installer von PureScript schädlicher Code, der beim Versuch, das Paket zu installieren, auftritt . Der schädliche Code ist über Abhängigkeiten eingebaut und . Bemerkenswert ist, dass die Verwaltung der Pakete mit diesen Abhängigkeiten vom ursprünglichen Autor des npm-Pakets mit dem Installer von PureScript übernommen wird, der bis vor kurzem die Pflege dieses npm-Pakets durchgeführt hat, aber vor etwa einem Monat das Paket an andere Betreuer übergeben hat.
Das Problem wurde von einem der neuen Hauptbetreuer des Pakets entdeckt, dem die Pflegerechte nach vielen Meinungsverschiedenheiten und unangenehmen Diskussionen mit dem ursprünglichen Autor des npm-Pakets purescript übertragen wurden. Die neuen Hauptbetreuer sind für den Compiler von PureScript verantwortlich und bestanden darauf, dass das NPM-Paket mit seinem Installer von denselben Betreuern gewartet wird und nicht von Dritten. Der Autor des npm-Pakets mit dem Installer von PureScript war lange nicht einverstanden, gab dann aber nach und übergab den Zugang zum Repository. Dabei blieben einige Abhängigkeiten unter seiner Kontrolle.
In der letzten Woche wurde die Version 0.13.2 des PureScript Compilers veröffentlicht und
die neuen Betreuer bereiteten das entsprechende Update des npm-Pakets mit dem Installer vor, in dessen Abhängigkeiten schädlicher Code identifiziert wurde. Der vom Amt des Betreuers abgesetzte Autor des npm-Pakets mit dem Installer von PureScript erklärte, dass sein Konto von unbekannten Angreifern kompromittiert worden sei. Dennoch waren die schädlichen Aktivitäten in ihrer aktuellen Form auf die Sabotage bei der Installation des Pakets beschränkt, das die erste Version von den neuen Betreuern darstellt. Die schädlichen Handlungen beschränkten sich darauf, eine Endlosschleife mit einer Fehlermeldung auszugeben, wenn der Befehl „npm i -g purescript“ ausgeführt wurde, ohne explizite schädliche Aktivitäten durchzuführen.
Es wurden zwei Angriffe festgestellt. Einige Stunden nach der offiziellen Veröffentlichung der neuen Version des npm-Pakets purescript wurde von jemandem eine neue Version der Abhängigkeit load-from-cwd-or-npm 3.0.2 erstellt, deren Änderungen dazu führten, dass der Aufruf von loadFromCwdOrNpm() anstelle einer Liste der für die Installation erforderlichen Binärdateien einen Stream zurückgab , der die Eingabeanforderungen als Ausgabewerte spiegelt.
Nach 4 Tagen, nachdem die Entwickler die Quelle der Störungen untersucht hatten und sich auf ein Update vorbereiteten, um load-from-cwd-or-npm aus den Abhängigkeiten zu entfernen, wurde von den Angreifern ein weiteres Update von load-from-cwd-or-npm 3.0.4 veröffentlicht, in dem der Schadcode entfernt wurde. Dennoch wurde fast sofort ein Update einer anderen Abhängigkeit, rate-map 1.0.3, veröffentlicht, in dem eine Korrektur hinzugefügt wurde, die den Callback-Aufruf für das Laden blockiert. Das heißt, in beiden Fällen trugen die Änderungen in den neuen Versionen von load-from-cwd-or-npm und rate-map den Charakter einer offensichtlichen Sabotage. Darüber hinaus gab es im Schadcode eine Überprüfung, die die fehlerhaften Aktionen nur bei der Installation des Releases von neuen Betreuern aktivierte und sich bei der Installation älterer Versionen nicht zeigte.
Die Entwickler haben das Problem durch die Veröffentlichung eines Updates behoben, in dem die problematischen Abhängigkeiten entfernt wurden. Um zu verhindern, dass kompromittierter Code auf den Systemen der Benutzer verbleibt, wird nach dem Versuch, die problematische Version von PureScript zu installieren, empfohlen, den Inhalt der Verzeichnisse node_modules und der Dateien package-lock.json zu löschen und anschließend die Version purescript 0.13.2 als untere Grenze festzulegen.
Quelle: opennet.ru
