De ontwikkelaars van Rspack hebben onthuld dat twee van hun npm-pakketten, @rspack/core en @rspack/cli, zijn gecompromitteerd tijdens een software supply chain-aanval waardoor een kwaadwillende actor kwaadaardige versies kon publiceren in het officiële pakketregister met cryptocurrency mining-malware.
Na de ontdekking is de publicatie van versie 1.1.7 van beide bibliotheken uit het npm-register ongedaan gemaakt. De nieuwste veilige versie is 1.1.8.
“Ze zijn vrijgegeven door een aanvaller die ongeautoriseerde npm-publicatietoegang heeft verkregen en bevatten kwaadaardige scripts”, zei softwareleverancier Socket in een analyse.
Rspack wordt aangekondigd als een alternatief voor het webpack en biedt een “krachtige JavaScript-bundel geschreven in Rust.” Oorspronkelijk ontwikkeld door ByteDance, is het sindsdien overgenomen door verschillende bedrijven, zoals onder meer Alibaba, Amazon, Discord en Microsoft.
De npm-pakketten in kwestie, @rspack/core en @rspack/cli, trekken wekelijkse downloads aan van respectievelijk meer dan 300.000 en 145.000, wat een indicatie is van hun populariteit.
Uit een analyse van de frauduleuze versies van de twee bibliotheken is gebleken dat ze code bevatten om oproepen naar een externe server (“80.78.28(.)72”) te doen om gevoelige configuratiegegevens zoals inloggegevens voor cloudservices te verzenden, terwijl ze ook gegevens verzamelen IP-adres en locatiegegevens door een HTTP GET-verzoek te doen aan “ipinfo(.)io/json.”
In een interessante wending beperkt de aanval de infectie ook tot machines die zich in een specifieke reeks landen bevinden, zoals China, Rusland, Hong Kong, Wit-Rusland en Iran.
Het einddoel van de aanvallen is het activeren van het downloaden en uitvoeren van een XMRig cryptocurrency miner op gecompromitteerde Linux-hosts na installatie van de pakketten door middel van een postinstall-script dat is gespecificeerd in het bestand “package.json”.
“De malware wordt uitgevoerd via het postinstall-script, dat automatisch wordt uitgevoerd wanneer het pakket wordt geïnstalleerd”, aldus Socket. “Dit zorgt ervoor dat de kwaadaardige lading wordt uitgevoerd zonder enige actie van de gebruiker, en zichzelf inbedt in de doelomgeving.”
Naast het publiceren van een nieuwe versie van de twee pakketten zonder de kwaadaardige code, zeiden de projectbeheerders dat ze alle bestaande npm-tokens en GitHub-tokens ongeldig hadden gemaakt, de rechten van de repository- en npm-pakketten hadden gecontroleerd en de broncode hadden gecontroleerd op mogelijke kwetsbaarheden. Er wordt een onderzoek ingesteld naar de oorzaak van de tokendiefstal.
“Deze aanval benadrukt de noodzaak voor pakketbeheerders om strengere waarborgen in te voeren om ontwikkelaars te beschermen, zoals het afdwingen van attestcontroles, om te voorkomen dat updates naar niet-geverifieerde versies worden uitgevoerd”, aldus Socket. “Maar het is niet helemaal kogelvrij.”
“Zoals we hebben gezien bij de recente Ultralytics supply chain-aanval in het Python-ecosysteem, kunnen aanvallers mogelijk nog steeds versies met attestatie publiceren door GitHub-acties te compromitteren via cache-vergiftiging.”