
Színlelt Bun-integrációval támadtak
A HelixGuard biztonsági szakemberei 2025. november 24-én arra lettek figyelmesek, hogy az npm registryben több száz csomag új verziója néhány óra leforgása alatt hirtelen ugyanazt a manipulált technológiát használja: mindegyik azt állította, hogy támogatja a Bun futtatókörnyezetet. Ebből arra lehet következtetni, hogy egy jól szervezett, összehangolt támadássorozatról van szó.
A támadók úgy módosították a package.json fájlokat, hogy egy preinstall-szkriptet adtak hozzá (node setup_bun.js), valamint egy bun_environment.js nevű fájlt, amely rendkívül nehezen értelmezhető, de annál veszélyesebb kódot tartalmazott. Maga a bun_environment.js több mint 10 MB méretű, és nagyrészt titkosított, így nehéz volt gyorsan észrevenni vagy kielemezni.
Bizalmas céges adatok landoltak külső kezekben
A kártevő működése alatt a setup_bun.js futása során letöltötte és elindította a TruffleHog nevű eszközt, amely a gépen megtalálható összes npm-token, valamint az AWS-, GCP-, Azure-hozzáférési adatokat és a környezeti változókat összegyűjtötte. Különösen aggasztó, hogy nemcsak a fejlesztői gépekhez, hanem Git-hosztingszolgáltatásokhoz és a fejlesztési folyamatokban használt egyéb titkos kulcsokhoz is hozzáférést szerezhetett.
Az ellopott adatokat egy GitHub Actions runner segítségével továbbította a támadóhoz, SHA1HULUD néven. Ez a módszer megegyezik a szeptemberi, „Shai-Hulud” néven ismert támadással, így nagy valószínűséggel ugyanaz a támadó állhat a háttérben.
Automatizált terjedés, féregként
A bun_environment.js nem csupán adatokat lopott: az aktuális környezet npm-konfigurációja alapján módosította az éppen használt package.json-t, automatikusan beszúrta magát és újracsomagolta a csomagot. Ezután az ellopott npm-tokenek segítségével feltöltötte a fertőzött változatot az npm-re – ezzel gyors, féregszerű terjedést valósított meg, további fejlesztői számítógépeket fertőzve meg, minden emberi beavatkozás nélkül.
A támadó kód a .github/workflows könyvtárban a workflow-kat is módosította, ahol kétszeres Base64-kódolással tárolta az ellopott kulcsokat és titkokat egy actionsSecrets.json nevű fájlban. Az adatok között EC2-SSH-kulcs, GitHub-tokenek, AWS-hozzáférési kulcsok, Slack-webhookok, Firebase-tokenek és Codecov-azonosítók is megtalálhatók.
Ismert fertőzött csomagok, milliós letöltésszámok
A fertőzöttségi lista ijesztően hosszú, és több, igen népszerű modul is áldozatául esett a támadásnak. A leggyakrabban letöltött, veszélybe sodort csomagok között szerepel a @zapier/zapier-sdk (heti 2 640 000+ letöltés), @posthog/core (1 980 000 letöltés), posthog-node (1 550 000 letöltés), @asyncapi/specs (1 430 000 letöltés) vagy éppen a @postman/tunnel-agent (1 220 000 letöltés).
Lényeges, hogy a támadók ismert és széles körben használt fejlesztői eszközöket céloztak, így számos vállalati és nyílt forráskódú projekt is közvetlenül érintett lehetett.
Ez azonban csak a jéghegy csúcsa
A most feltárt támadás döbbenetes gyorsasággal okozott károkat, és rámutat arra, mennyire sebezhető a JavaScript-ökoszisztéma, ha az ellátási láncban rés keletkezik. A fertőzött csomagok között számos, kritikus infrastruktúrában használt eszköz is található, a fejlesztőknek pedig sürgősen ellenőrizniük kell, hogy érintettek-e, valamint visszavonni és újragenerálni minden érintett kulcsot és tokent.
A támadás tovább erősítheti azt a meggyőződést, hogy a csomagkezelőkbe és fejlesztői környezetekbe épített, automatizált biztonsági ellenőrzések nélkülözhetetlenek, és mindennél fontosabb a proaktív hozzáállás az ellátási lánc védelméhez.
