- 4. elokuuta 2026 itseään lisäävä mato nimeltä ChainDrop vaaransi yli 400 npm-pakettia, mukaan lukien keyv:n ja flat-cachen, neljän tunnin sisällä.
- Hyökkäyksessä käytettiin varastettuja GitHub-tunnuksia julkaistakseen haitallisia versioita, joilla oli kelvollinen alkuperä, mikä teki niistä erottamattomia laillisista julkaisuista.
- Hyötykuorma varastaa tunnistetiedot, vuotaa tietoja Ethereum-pohjaisen C2:n kautta ja julkaisee tartunnan saaneita paketteja uudelleen varastettujen npm-tokenien avulla.
- Organisaatioiden on tarkistettava lukitustiedostot, vaihdettava tunnistetietoja ja poistettava pysyvyysmekanismit vaikutusten lieventämiseksi.
NPM-ekosysteemi kärsii yhdestä aggressiivisimmista toimitusketjuhyökkäyksistä koskaan. 4. elokuuta 2026 mato nimeltä ChainDrop repi läpi rekisterin ja myrkytti satoja paketteja alle neljässä tunnissa. Hyökkäys hyödynsi vaarantunutta GitHub-tiliä julkaistakseen haitallisia versioita laajalti käytetyistä kirjastoista, kuten keyv ja flat-cache, jotka yhdessä kattavat satoja miljoonia viikoittaisia latauksia. Tämän tapauksen tekee erityisen hälyttäväksi se, että haitallisilla julkaisuilla oli voimassa oleva SLSA-alkuperä, minkä ansiosta ne näyttivät täysin laillisilta automaattisissa tietoturvatarkistuksissa.
StepSecurityn, Unit 42:n, Sonatypen ja Aikidon tietoturvatutkijat ovat kilpailleet mato-ohjelman analysoinnista ja sen leviämisen estämisestä. Ensimmäinen aalto iski jaredwray-ekosysteemiin, mutta mato levisi nopeasti muihin ylläpitäjiin ja organisaatioihin, kuten ServiceTitaniin, Qlikiin ja Deliverooon. Viimeisimmän päivityksen mukaan vaarantuneiden pakettien määrä jatkaa kasvuaan, ja uusia tartuntoja ilmaantuu muutaman minuutin välein. Tämä ei ole vain yksi kirjoitusvirheiden varastamiskampanja; se on hienostunut, itseään levittävä mato, joka varastaa tunnistetiedot ja käyttää niitä julkaistakseen itsensä uudelleen npm-rekisterissä.
Hyökkäys yhdellä silmäyksellä

Hyökkäys alkoi, kun keyv:n ja siihen liittyvien pakettien ylläpitäjän Jared Wrayn GitHub-tili vaarantui. Hyökkääjä lähetti haitallisia committeja suoraan päähaaraan ja leikkasi uusia julkaisuja, jotka sitten julkaistiin npm:ään projektin oman luotetun julkaisutyönkulun kautta. Tämä tarkoitti, että myrkytetyillä versioilla oli voimassa olevat SLSA-alkuperävahvistukset , ominaisuus, jota monet tiimit käyttävät turvallisuussignaalina. Alkuperä kuitenkin todistaa vain sen, mikä commit on rakennettu, ei sitä, oliko commit valtuutettu. Hyökkääjä myös istutti väärennettyjä testitiedostoja ja muokattuja julkaisuskriptejä varmistaakseen, että haitallisista versioista tuli uusin dist-tag.
Haitalliset paketit sisälsivät esiasennusskriptin, joka suoritti setup.mjs-nimisen dropperin. Tämä dropperi latasi laillisen Bun JavaScript -suoritusympäristön GitHubista ja käytti sitä 727 kt:n kokoisen hämärretyn hyötykuorman Math_Symbol.js suorittamiseen. Hyötykuorma oli täysimittainen mato, joka keräsi uhrin järjestelmästä tunnistetietoja, mukaan lukien npm-tokenit, GitHub-tokenit, pilvitunnistetiedot, SSH-avaimet ja jopa tekoälytyökalujen määritykset. Sitten se suodatti tiedot komento- ja hallintapalvelimelle, mikä ratkaistiin Ethereum-älysopimuksen avulla – tekniikalla, joka tunnetaan nimellä EtherHiding.
Vaikutuskohteena olevat paketit ja niiden soveltamisala

Alkuperäinen aalto kohdistui 11 jaredwray-ekosysteemin pakettiin, mukaan lukien keyv@6.0.0, flat-cache@6.1.24 ja file-entry-cache@11.1.6. Nämä paketit ovat lukemattomien projektien transitiivisia riippuvuuksia ESLintistä cache-manageriin. Mato käytti sitten varastettuja tunnistetietoja julkaistakseen uudelleen 433 uutta pakettia, jolloin pakettien kokonaismäärä nousi 444 pakettiin ja 2 212 versioon muutaman ensimmäisen tunnin aikana. Myöhemmät Sonatypen ja Aikidon raportit viittaavat siihen, että luku on kasvanut entisestään, ja pölyn laskeutuessa yli 1 000 pakettia oli jo vaurioitunut.
Toinen aalto iski paketteihin organisaatioilta, kuten @servicetitan, @qlik, @onereach ja @deliveroo, mikä viittaa siihen, että mato oli siirtynyt julkisista kehittäjätyökaluista yritysten koontiputkiin. Hyökkääjät loivat myös julkisia tietovarastoja Dune-teemaisilla nimillä vuotaneiden tietojen säilyttämistä varten ja asensivat pysyvyysmekanismeja .vscode- ja .claude-hakemistoihin tartuttaakseen uudelleen kehittäjät, jotka olivat avanneet vaarantuneet tietovarastot.
Miten ChainDrop-mato toimii
Hyökkäysketju on mestarikurssi maan rahoilla elämisessä. Esiasennusskripti suoritetaan ennen minkään riippuvuuden asentamista, joten mato toimii käyttäjän oikeuksilla. Dropper tarkistaa, onko Bun jo asennettu; jos ei, se lataa laillisen Bun-binääritiedoston GitHubista. Tämä saa verkkoliikenteen näyttämään harmittomalta, koska se tulee github.comista. Toisen vaiheen hyötykuorma irrottautuu sitten taustaprosessiksi ja aloittaa likaisen työnsä.
Yksi erottuvimmista tekniikoista on juoksijan muistin kaapiminen . Hyötykuorma suorittaa Python-apuohjelman, joka lukee GitHub Actions Runner.Worker -prosessin muistia ja etsii työnkulkuun lisättyjä salaisuuksia. Näin se voi tallentaa OIDC-tokeneja ja muita lyhytaikaisia tunnistetietoja, jotka muuten katoaisivat työn päättyessä. Matto käyttää myös venäläistä kieliasetuksen kill switchiä, joka sulkeutuu puhtaasti, jos järjestelmän kieli on venäjä. Tämä on yleinen taktiikka IVY-maihin kohdistamisen välttämiseksi.
Hyötykuorma sisältää täyden npm-julkaisumoottorin. Se luettelee kaikki paketit, jotka uhri voi julkaista, lataa nykyisen tarball-tiedoston, lisää haitallisen esiasennusskriptin ja hyötykuorman sekä julkaisee paketin uudelleen muokattuna versiona. Se jopa luo omat Sigstore- ja SLSA-alkuperäispaketit, jolloin haitalliset versiot näyttävät laillisesti rakennetuilta. Tämä itseleviämismekanismi mahdollisti madon leviämisen niin nopeasti toisiinsa liittymättömiin organisaatioihin.
Kompromissin indikaattorit
Jos olet asentanut jonkin näistä versioista, oleta, että järjestelmäsi on vaarantunut. Etsi näitä merkkejä:
- Tiedostot nimeltä setup.mjs, Math_Symbol.js tai math_init.js node_modules-hakemistoissa.
- Järjestelmässäsi on odottamattomia Bun-binäärejä, varsinkin jos et ole koskaan asentanut Bunia.
- Muutokset tiedostoon .claude/settings.json tai .vscode/tasks.json, jotka viittaavat tiedostoon setup.mjs.
- Lähtevät yhteydet osoitteeseen npm-cache.com tai awqhnjewqjkl.icu tai Ethereumin RPC-kutsuja sopimuksen 0xE1f2395ee43e45A1556EC6438a88c31B83493103 suorittamiseksi.
- Uusia GitHub-arkistoja, joiden kuvaukset ovat esimerkiksi ”Shai-Hulud: Here We Go Again” tai Dyyni-aiheisia nimiä.
Tarkista myös vuotamisen jälkeen asennettu token-valvonta: ~/.local/bin/gh-token-monitor.sh, ~/.config/gh-token-monitor/ ja systemd- tai LaunchAgent-palvelut. Mato asentaa tämän rankaisemaan tunnistetietojen kierrätystä laukaisemalla hyökkääjän kuorman, kun varastettu token peruutetaan.
Lieventäminen ja toipuminen
Jos tämä vaikuttaa sinuun, toimi nopeasti. Eristä ensin kone ja säilytä lokit. Kierrä sitten kaikki järjestelmässä olleet tunnistetiedot, mukaan lukien npm-tokenit, GitHub PAT:t, pilviavaimet ja SSH-avaimet. Poista token-valvonta ennen kierrätystä, sillä se käynnistyy, jos peruutat tunnuksen. Seuraavaksi puhdista lukitustiedostosi ja kiinnitä ne tunnettuihin toimiviin versioihin. Käytä keyv-, flat-cache- ja file-entry-cache-tiedostoille ohituksia estääksesi haitalliset versiot. Lopuksi asenna uudelleen –ignore-scripts-valitsimella estääksesi jäljellä olevien asennushookkien suorittamisen.
CI/CD-putkien osalta tarkista lokit kaikista asennuksista, jotka ratkaisivat ongelmalliset versiot altistumisikkunan aikana. Käsittele kaikkia saastuneen paketin asentaneita suorittajia vaarantuneina ja kierrätä kaikkia kyseiselle työlle käytettävissä olevia salaisuuksia. Auditoi myös GitHub-organisaatiosi odottamattomien "Run Copilot" -nimisten työnkulkujen tai "format-results" -nimisten artefaktien varalta, jotka ovat merkkejä madon salaisuuksien pesusta.
Syvällinen puolustus on ratkaisevan tärkeää. Käytä ulospäin suuntautuvien sallittujen listojen asetuksia CI-ajonjärjestelmissä estääksesi dropperin hakemasta Bunia. Ota käyttöön jäähykäytäntöjä, jotka edellyttävät pakettien olevan muutaman päivän vanhoja ennen käyttöönottoa. Äläkä luota pelkästään alkuperään – se ei ole tae turvallisuudesta. Paras puolustus on minimoida asennusskriptien käyttö ja seurata poikkeavaa toimintaa.
Tutkimuksen jatkuessa tartuntapakettien määrä kasvaa edelleen. Madon kyky vaihtaa C2-infrastruktuuriaan yhden Ethereum-tapahtuman kautta tekee siitä erityisen kestävän. Tietoturvatiimien tulisi seurata älysopimusta muutosten varalta ja pysyä ajan tasalla uusista indikaattoreista. npm-rekisteri on aloittanut haitallisten versioiden poistamisen, mutta puhdistus on edelleen käynnissä.
Tämä tapaus on karu muistutus siitä, että avoimen lähdekoodin ekosysteemi on yhtä turvallinen kuin sen heikoin lenkki. Yksikin vaarantunut ylläpitäjän tili voi johtaa massiiviseen toimitusketjuhyökkäykseen. ChainDrop-mato on herätys kehittäjille ja organisaatioille, jotta he ottaisivat käyttöön vahvempia tietoturvakäytäntöjä, kuten monivaiheisen todennuksen, vähiten oikeuksiin perustuvat tunnukset ja riippuvuuksien jatkuvan valvonnan.