Er zijn vier gecompromitteerde npm-pakketten in de naamruimte @asyncapi waargenomen die een meertraps botnet-lader distribueren, volgens bevindingen van OX Security, SafeDep, Socket en StepSecurity.
De getroffen pakketten worden hieronder vermeld:
- @asyncapi/[email protected]
- @asyncapi/[email protected]
- @asyncapi/[email protected]
- @asyncapi/specificaties(v6.11.2, v6.11.2-alpha.1)
“De gecompromitteerde pakketten implementeren een versluierde payload van de eerste fase die een gecodeerde payload van de tweede fase, geïdentificeerd als Miasma, downloadt van IPFS”, aldus Socket.
De vergiftigde pakketten bevatten een verborgen JavaScript-implantaat, waarbij elk pakket een geïnjecteerd bronbestand bevat dat wordt gedecodeerd naar dezelfde tweede fase downloader. In tegenstelling tot eerdere iteraties waarbij gebruik werd gemaakt van install hooks om de uitvoering van een JavaScript-payload te activeren, wordt de kwaadaardige code in dit geval uitgevoerd wanneer de geïnfecteerde module wordt geladen door Node.js, waarna deze een losstaand achtergrondknooppunt lanceert dat de malware van IPFS downloadt en uitvoert.
De volgende stap is een gecodeerde JavaScript-lader met de naam ‘sync.js’, die naar besturingssysteemspecifieke paden wordt geschreven en wordt uitgevoerd. De downloader-URL is “ipfs(.)io/ipfs/QmQobZSp1wRPrpSEQ56qnyq7ecZh5Bg5k1fnjt4SUwwHb9.” De lader bevat twee componenten:
- De gecodeerde uiteindelijke JavaScript-payload, die wordt gedecodeerd naar het Miasma-taskframework
- Een grote gecodeerde blob die wordt gebruikt door het spawn-chain-framework van de runtime
Het framework bundelt 744 modules en is gebouwd als een commandoframework dat zes onafhankelijke command-and-control (C2) communicatiekanalen ondersteunt met behulp van HTTP, Nostr relay, IPFS, BitTorrent DHT, libp2p GossipSub P2P mesh en een Ethereum smart contract.

Naast het faciliteren van diefstal van inloggegevens, AI-toolvergiftiging, laterale LAN-beweging en wormachtige verspreiding op npm-, PyPI- en Cargo-registers, beschikt Miasma over een eigen persistentiemechanisme, waarbij een systemd-, crontab-, macOS launchd- en Windows Registry autostart-sleutels worden opgezet.
“Hoewel de malware enkele overeenkomsten vertoont met de Shai-Hulud- en Miasma-campagnes, en de Miasma-string meerdere keren in de code bevat, is deze malware niet dezelfde en wordt deze ook niet toegeschreven aan de Miasma/Shai-Hulud/TeamPCP-campagnes die we in het verleden hebben gezien”, aldus Moshe Siman Tov Bustan van OX Security.
Bovendien bevat het een dodemansschakelaar die een gestolen token in de gaten houdt en een mapopruiming activeert als het token wordt ingetrokken, terwijl systemen worden vermeden die worden geïdentificeerd als sandboxes of virtuele omgevingen, evenals systemen waarvan de huidige taal is ingesteld op Russisch of waarop beveiligingstools van CrowdStrike, SentinelOne, Microsoft Defender, CarbonBlack, Cylance, Osquery, Tanium en Qualys zijn geïnstalleerd.
“Het duidelijkste operationele pad is op REST gebaseerde C2: het implantaat bakent naar een HTTP-eindpunt, accepteert gecodeerde taken en post commandoresultaten terug naar dezelfde infrastructuur. Rond die kern biedt de payload ook ondersteuning voor uploadtransport, commandocodering, knooppuntondertekening, payload-updates, bestandsbeheer, shell-uitvoering en persistentieschrijven.”
Volgens StepSecurity zou de aanvaller push-toegang tot de repository’s hebben verkregen en de eigen legitieme GitHub Actions-releasepijplijn van het project hebben gebruikt om pakketten met geldige OIDC-herkomstattesten te publiceren. Bij de supply chain-aanval ging het niet om de diefstal van een npm-token.
“Beide aanvallen zijn inbreuken op de CI/CD-pijplijn, en geen gestolen npm-tokens of kwaadwillende beheerders”, zei beveiligingsonderzoeker Rohan Prabhu. “De aanvaller pushte commits onder een tijdelijke git-identiteit en liet de echte releaseworkflow van elke repository het publiceren doen via de GitHub OIDC vertrouwde uitgeversintegratie van npm.”
“De resulterende pakketten bevatten legitieme SLSA-herkomstattesten, die alleen bewijzen dat de geautoriseerde workflow van het project deze heeft geproduceerd, niet dat de triggerende commits legitiem waren. Herkomst biedt geen bescherming tegen gecompromitteerde push-referenties.”
Alle vijf kwaadaardige versies zijn sindsdien niet meer gepubliceerd in het npm-register. Het wordt aangeraden om elk eindpunt dat een van de betrokken pakketversies importeert of uitvoert, als mogelijk gecompromitteerd te beschouwen. Er moet echter worden opgemerkt dat de blootstelling afhangt van de vraag of de geïnfecteerde module is geladen als onderdeel van een build of een workflow van een ontwikkelaar.
“Er is nergens een preinstall/postinstall/install-script in een van de drie package.json-bestanden”, aldus StepSecurity. “Deze dropper wordt geactiveerd wanneer de vergiftigde module nodig is tijdens normaal gebruik van de generator: op het moment dat een build- of CI-taak daadwerkelijk de bibliotheek aanroept, niet op de NPM-installatietijd.”