In een nieuwe campagne van de Shai-Hulud supply-chain aanval zijn 19 PyPI-pakketten, vooral gericht op bioinformatica, besmet met malware die is ontworpen om ontwikkelaarsgeheimen te stelen. De getroffen pakketten, waaronder Dynamo, Spateo, CoolBox, U-FISH en Napari-UFISH, zijn samen honderden duizenden keren gedownload. De aanval werd ontdekt door het applicatiebeveiligingsbedrijf Socket, dat 37 kwaadaardige releases identificeerde die lijken te zijn uitgebracht door één enkele beheerder.

De kwaadaardige componenten bevatten onder andere een ‘*-setup.pth’ bestand en een geobfusceerde JavaScript payload genaamd ‘_index.js’. Zodra Python wordt gestart, activeert het PTH-bestand de uitvoering van de payload, die vervolgens probeert de Bun JavaScript runtime van GitHub te downloaden om het script uit te voeren. Dit betekent dat een besmet pakket een passieve afhankelijkheidsinstallatie kan veranderen in een vertraagde uitvoeringstrigger, waarbij elke volgende Python-activiteit zoals pip, tests, notebook kernels, CI-jobs of pakketbeheercommando’s het kwaadaardige .pth-bestand kan activeren, zoals Socket uitlegt.

De aanval maakt deel uit van de bredere Shai-Hulud campagne, die inmiddels 453 kwaadaardige artefacten omvat. De JavaScript payload is gericht op het stelen van een breed scala aan ontwikkelaarsgeheimen, waaronder GitHub tokens en GitHub Actions secrets, npm, PyPI, RubyGems en JFrog publicatietokens, AWS, GCP, Azure, Kubernetes en Vault credentials, SSH-sleutels, Docker credentials, configuratiebestanden en shellgeschiedenissen. Het doel is het compromitteren van softwareontwikkelingsprocessen om de malware verder te verspreiden.

De data-exfiltratie verloopt via automatisch aangemaakte GitHub repositories waarin secrets worden weggeschreven met behulp van GitHub Actions. Daarnaast is er een tweede methode via directe HTTPS-verbindingen naar een legitiem maar ongeldig Anthropic API-eindpunt, vermoedelijk gebruikt als camouflage. De malware bevat ook ontwijkingsmechanismen, zoals het controleren op Russische omgevingen en beveiligingstools als StepSecurity Harden-Runner. Persistentie wordt gerealiseerd via systemd services op Linux en LaunchAgents op macOS, naast het gebruik van GitHub workflows en Claude/MCP configuratiebestanden.

Socket adviseert organisaties die deze pakketten hebben geïnstalleerd om alle secrets te roteren en hun omgevingen te herstellen vanuit veilige back-ups. Beveiligingsteams wordt aangeraden te letten op Python-pakketten met uitvoerbare .pth startup hooks, onverwachte downloads van de Bun runtime van GitHub en procesketens waarbij Python Bun start om _index.js uit te voeren. Voor een effectieve verdediging is het essentieel om elke laag van de infrastructuur te testen voordat aanvallers dat doen, zoals beschreven in de Picus whitepaper over breach en attack simulation.