Mini Shai-Hulud féreg
A TeamPCP néven ismert fenyegetési szereplőt egy kifinomult ellátási lánc támadási kampányhoz kötötték, amely a TanStack, UiPath, Mistral AI, OpenSearch, Guardrails AI és számos más ökoszisztémához kapcsolódó széles körben használt npm és PyPI csomagokat vette célba. A folyamatosan fejlődő Mini Shai-Hulud rosszindulatú kampányhoz kapcsolódó művelet a szoftverellátási láncban történő visszaélések és az identitásvezérelt kompromittálási technikák jelentős eszkalációját mutatja.
A kutatók azonosították, hogy a rosszindulatú npm csomagokat úgy módosították, hogy egy router_init.js nevű obfuszkált JavaScript komponenst tartalmazzanak. Ez a hasznos adatelem profilt készít a fertőzött környezetekről, és egy fejlett hitelesítőadat-lopó programot telepít, amely felhőszolgáltatókat, kriptovaluta-tárcákat, mesterséges intelligencia fejlesztőeszközöket, üzenetküldő platformokat, CI/CD-rendszereket és GitHub Actions környezeteket céloz meg. A kiszivárgott adatok elsősorban a filev2.getsession.org domainre kerülnek továbbításra.
A Session Protocol infrastruktúra használata a vállalati biztonsági ellenőrzések megkerülésére tett szándékos kísérletre utal. Mivel a domain egy decentralizált, adatvédelemre összpontosító üzenetküldő platformhoz tartozik, kisebb a valószínűsége, hogy a hagyományos hálózati védelem blokkolja. Másodlagos kiszűrési módszerként a titkosított adatokat a támadó által ellenőrzött adattárakba küldik a GitHub GraphQL API-n keresztül, ellopott GitHub hitelesítési tokenek segítségével, a claude@users.noreply.github.com szerzői azonosító alatt.
Tartalomjegyzék
Megmaradásának mechanizmusai és a hitelesítő adatok ellopásának kiterjesztése
A kártevő számos perzisztencia- és megfigyelési képességet vezet be, amelyek célja a feltört fejlesztői környezetekhez való hosszú távú hozzáférés fenntartása. A perzisztencia-horgok a Claude Code-on és a Microsoft Visual Studio Code-on belül vannak létrehozva, lehetővé téve a kártevő számára, hogy túlélje a rendszer újraindítását, és automatikusan újrainduljon, amikor az IDE-ket megnyitják.
Ezenkívül egy gh-token-monitor szolgáltatást is telepítenek a GitHub tokenek folyamatos monitorozására és újra-kiszivárgására. Két rosszindulatú GitHub Actions munkafolyamatot is befecskendeznek a feltört adattárakba. Ezek a munkafolyamatok JSON formátumba szerializálják az adattár titkait, és feltöltik az adatokat a külső api.masscan.cloud végpontra.
A TanStack legújabb kompromittációja jelentősen eltér a korábbi ellátási lánc incidensektől. A támadók a telepítés előtti hook helyett egy rosszindulatú JavaScript fájlt ágyaztak be közvetlenül a csomagok tarballjaiba, miközben egy opcionális függőséget vezettek be, amely egy GitHub-on üzemeltetett csomaghoz volt kapcsolva. Ez a függőség egy előkészítési életciklus-hookot tartalmaz, amely a hasznos adatot a Bun futási környezeten keresztül hajtja végre.
A trójai vírussal fertőzött Mistral AI csomagok egy régebbi fertőzési stratégiát alkalmaztak, a package.json fájlt egy előtelepítési hookkal módosították, amely meghívja a node setup.mjs-t. Ez a folyamat letölti a Bun-t, és ugyanazt a hitelesítő adatokat ellopó kártevőt futtatja.
A CVE-2026-45321 és a megbízható kiadványokkal való visszaélés
A TanStack kompromittálását hivatalosan CVE-2026-45321-ként azonosították, és 9,6-os kritikus CVSS pontszámot kapott. A nyomozók megerősítették, hogy a TanStack ökoszisztémán belül 42 csomag és 84 verzió érintett.
Az elemzés kimutatta, hogy a kompromittálás egy láncolt GitHub Actions támadásból ered, amely a pull_request_target triggert, a GitHub Actions gyorsítótár-mérgezést és az OIDC tokenek futásidejű kinyerését használta ki a GitHub Actions futtatóiból. A támadók állítólag rosszindulatú hasznos adatokat juttattak el árva commitokon keresztül a GitHub forkokban, mielőtt azokat az npm csomagok tarballjaiba injektálták volna. A támadók ezután legitim TanStack/router munkafolyamatokat térítettek át, hogy érvényes SLSA eredetigazolással rendelkező feltört csomagokat tegyenek közzé.
Ez a fejlemény történelmi jelentőségű eszkalációt jelent a szoftverellátási láncok elleni támadások terén. A rosszindulatú csomagok érvényes SLSA 3-as szintű származási aláírásokat hordoztak, így ez az első dokumentált npm féreg, amely képes hiteles build-tanúsítvánnyal rendelkező rosszindulatú csomagokat terjeszteni. A rosszindulatú kampány ezt követően túlmutatott a TanStacken, és átterjedt az UiPath, a DraftLab és más fejlesztők által fenntartott ökoszisztémákra.
A művelet súlyosan visszaél a megbízható közzétételi munkafolyamatokkal. Az npm hitelesítő adatok közvetlen ellopása helyett a támadó által vezérelt, megbízható CI/CD folyamatokon belül futó kód OIDC-engedélyeket használt fel rövid életű közzétételi tokenek létrehozására a build folyamat során. Ez lehetővé tette a rosszindulatú csomagok közzétételét legitim kiadási folyamatokon keresztül, a hagyományos hitelesítési védelmi intézkedések megkerülésével.
Az önszaporodó féreg viselkedése riasztó
A Mini Shai-Hulud kampány egyik legveszélyesebb aspektusa a féregszerű terjedési modellje. A rosszindulatú program aktívan keresi a bypass_2fa=true paraméterrel konfigurált, közzétehető npm tokeneket, felsorolja a feltört fejlesztő által karbantartott csomagokat, és GitHub OIDC tokeneket cserél csomagonkénti közzétételi tokenekre. Ez a mechanizmus lehetővé teszi a rosszindulatú program számára, hogy laterálisan terjedjen a csomagok ökoszisztémái között anélkül, hogy a hagyományos hitelesítőadat-lopási technikákra kellene támaszkodnia.
A támadás a GitHub OIDC megbízható közzétevő modelljén belüli, repozitórium szintű megbízhatósági konfigurációkat is kihasználta. Mivel a bizalom széles körben, a repozitórium szintjén volt megadva, ahelyett, hogy a védett ágakra és bizonyos munkafolyamat-fájlokra korlátozódott volna, az árva commitok által kiváltott rosszindulatú munkafolyamat-végrehajtások legitim npm közzétételi tokeneket tudtak kérni.
Egy másik zavaró képesség egy „halott ember kapcsoló” telepítése. A rosszindulatú program egy shell szkriptet telepít, amely 60 másodpercenként ismételten lekérdezi az api.github.com/user végpontot, hogy megállapítsa, a támadó által létrehozott npm tokenek aktívak maradnak-e. Ezek a tokenek a fenyegető „IfYouRevokeThisTokenItWipeTheComputerOfTheOwner” leírást hordozzák.
Ha a védők az npm irányítópulton keresztül visszavonják a tokent, a rosszindulatú program egy romboló rutint indít, amely az rm -rf ~/ parancsot futtatja, gyakorlatilag törölő rosszindulatúvá alakítva a fertőzést. Ez az agresszív viselkedés a TeamPCP működési taktikájának jelentős fejlődését jelzi, és a kényszerítő megőrzési módszerek egyre kifinomultabbak. A biztonsági csapatoknak ezért azt tanácsolják, hogy a feltört npm hitelesítő adatok visszavonása előtt izolálják és képalkotó eljárással készítsék el a fertőzött rendszereket.
Érintett csomagok és a bővülő ökoszisztéma-hatás
A kampány több mint 170 csomagot érintett mind az npm, mind a PyPI rendszerben, ami összesen több mint 518 millió letöltést jelent. A nyomozók legalább 400 olyan adattárat is azonosítottak, amelyeket lopott hitelesítő adatokkal hoztak létre, és mindegyik tartalmazta a „Shai-Hulud: Here We Go Again” kifejezést.
Az érintett csomagok a következők:
védőkorlátok-ai@0.10.1 (PyPI)
mistralai@2.4.6 (PyPI)
@opensearch-project/opensearch@3.5.3, 3.6.2, 3.7.0, 3.8.0
@squawk/mcp@0.9.5
@squawk/weather@0.5.10
@squawk/flightplan@0.5.6
@tallyui/connector-medusa@1.0.1, 1.0.2, 1.0.3
@tallyui/connector-vendure@1.0.1, 1.0.2, 1.0.3
A kártevő több redundáns kiszűrési csatornát is használ. A Session Protocol infrastruktúra és a GitHub dead dropok mellett az ellopott hitelesítő adatokat a typosquattinggel ellátott git-tanstack.com domainen keresztül is továbbítják.
A PyPI kártevő bevezeti a geofencing destruktív logikát
A kártékony Mistral AI és Guardrails AI csomagokhoz kapcsolódó Python-alapú kártevő variánsok jelentősen eltérnek az npm-en keresztül terjesztett JavaScript hasznos adatoktól. A feltört mistralai PyPI csomag egy hitelesítőadat-lopót tölt le a távoli 83.142.209.194 címen található gépről.
A kutatók felfedezték, hogy a Python rosszindulatú program országspecifikus logikát tartalmaz, amely elkerüli az orosz nyelvű környezetben való végrehajtást. Tartalmaz egy geofencinggel ellátott romboló mechanizmust is, amely egy a hathoz valószínűséggel végrehajtja az rm -rf / parancsot, ha a fertőzött rendszer Izraelben vagy Iránban található.
Ez a viselkedés aggasztó fejlődést mutat a régiótudatos, romboló hasznos teher telepítése felé a nyílt forráskódú csomagok ökoszisztémáiban.
Az identitásvezérelt ellátási lánc támadások növekvő veszélye
A Mini Shai-Hulud kampány a modern ellátási lánc támadások szélesebb körű átalakulását tükrözi. Ahelyett, hogy kizárólag a csomagok feltörésére összpontosítanának, a fenyegetések szereplői egyre inkább a megbízható CI/CD-identitásokat, a közzétételi munkafolyamatokat és a felhőalapú automatizálási folyamatokat veszik célba.
Amint a támadók hozzáférést szereznek a szoftverkiadási infrastruktúrához, maga a fejlesztési folyamat válik a rosszindulatú programok terjesztésének mechanizmusává. Mivel számos rosszindulatú művelet legitim munkafolyamatokon, megbízható tanúsítványokon és hiteles kiadási rendszereken keresztül történik, a hagyományos biztonsági ellenőrzések esetleg nem képesek azonosítani a rosszindulatú viselkedést.
Az ellátási láncok támadásainak ezen új generációját meghatározó főbb jellemzők a következők:
- Megbízható közzétételi és OIDC tokencsere-mechanizmusok visszaélése
- Terjesztés legitim CI/CD munkafolyamatokon és build rendszereken keresztül
- Érvényes SLSA-tanúsítványok használata rosszindulatú csomagok elrejtésére
- Többcsatornás hitelesítő adatok kiszűrése és megőrzése
- A védők megfélemlítésére tervezett romboló megtorló mechanizmusok
A kampány kiterjesztése a mesterséges intelligencia eszközeire, a vállalati automatizálásra, a keresési infrastruktúrára, a frontend fejlesztésre, a repüléssel kapcsolatos eszközökre és a CI/CD ökoszisztémákra jól mutatja, hogy mennyire mélyen összekapcsolódtak a szoftverellátási láncok. A csomagok telepítése és a build végrehajtása során végzett viselkedés-monitorozás egyre fontosabb az első pillantásra jogosnak tűnő fenyegetések észleléséhez.