Siirry pääsisältöön
Teknologia

TanStack kertoo npm-pakettiensa toimitusketjuhyökkäyksestä

Kuvituskuva uutiseen: TanStack kertoo npm-pakettiensa toimitusketjuhyökkäyksestä (tanstack, npm)
Photo by Rubaitul Azad on Unsplash
Pohjautuu lähteeseen Hacker News Best

TanStack on julkaissut jälkiarvion npm-toimitusketjuhyökkäyksestä, jossa hyökkääjä ehti 11. toukokuuta 2026 julkaista 84 haitallista versiota yhteensä 42 @tanstack/*-paketista. Tapauksen ydin oli usean GitHub Actions -ympäristön heikkouden ketjutus, ei npm-tunnusten varastaminen tai varsinaisen npm-julkaisutyönkulun murto.

Haitalliset versiot julkaistiin lyhyessä aikaikkunassa

TanStackin mukaan haitalliset versiot julkaistiin 11. toukokuuta kello 19.20–19.26 UTC. Paketteja oli 42, ja kustakin julkaistiin kaksi versiota noin kuuden minuutin välein. Julkinen havainto tehtiin noin 20 minuutissa ulkopuolisen tietoturvatutkijan ashishkurmin toimesta, joka työskenteli StepSecuritylle.

Kaikki tunnistetut haitalliset versiot on merkitty vanhentuneiksi, ja npm:n tietoturvatiimiä on pyydetty poistamaan kyseiset tarball-paketit rekisteristä. TanStackin mukaan sillä ei ole näyttöä siitä, että npm-käyttäjätunnuksia tai -tokeneita olisi varastettu. Myöskään npm-julkaisuprosessin ei kerrota itsessään vaarantuneen. Tapaukseen liittyvät TanStack/router#7383-seurantaketju ja GitHubin tietoturvatiedote GHSA-g7cv-rxg3-hmpx.

TanStack erottelee myös pakettilinjoja, joiden se sanoo olevan varmistetusti puhtaita. Näihin kuuluvat muun muassa @tanstack/query*, @tanstack/table*, @tanstack/form*, @tanstack/virtual*, @tanstack/store sekä @tanstack/start-metapaketti. Sen sijaan @tanstack/start-alkuiset paketit eivät kuulu tähän samaan puhtaaksi vahvistettujen listaan.

Hyökkäys hyödynsi GitHub Actions -ketjua

Jälkiarvion mukaan hyökkäys perustui kolmeen yhdessä käytettyyn tekijään: pull_request_target-malliin, GitHub Actions -välimuistin myrkyttämiseen fork- ja pääprojektin luottamusrajan yli sekä OIDC-tokenin poimimiseen ajonaikaisesti GitHub Actions -runnerin muistista. TanStack korostaa, että yksikään näistä tekijöistä ei olisi yksin riittänyt hyökkäyksen onnistumiseen.

Käytännössä haitallinen sisältö saattoi käynnistyä, kun kehittäjä tai CI-ympäristö asensi kyseisen version npm-, pnpm- tai yarn-komennolla. Asennuksen yhteydessä haitallinen optionalDependencies-määritys johti orvon hyötykuormacommitin hakemiseen fork-verkosta, prepare-elinkaariskriptin ajamiseen ja noin 2,3 megatavun obfuskoidun router_init.js-tiedoston suorittamiseen.

Asennusympäristöt on syytä käsitellä vaarantuneina

Tämän vuoksi TanStack suosittelee, että jokainen haitallisen version 11. toukokuuta asentanut käsittelee asennuskoneen mahdollisesti vaarantuneena. Suositeltuihin varotoimiin kuuluu asennusympäristöstä tavoitettavien AWS-, GCP-, Kubernetes-, Vault-, GitHub-, npm- ja SSH-tunnisteiden kierrättäminen.

Jälkiarviossa mainitaan myös bundle-size.yml-työnkulku, joka ajoi pull_request_target-tapahtumaa forkatuista pull requesteista ja tarkisti forkista PR-merge-viitteen ennen build-vaihetta. Työnkulussa oli yritetty erottaa luotettu ja epäluotettu osa toisistaan, mutta TanStackin mukaan haitallinen vite_setup.mjs oli suunniteltu kirjoittamaan tietoja pnpm-store-hakemistoon tavalla, joka ohitti tämän jaon.

Jatka aiheesta Teknologia.

Toimitus Uutistenlukija-toimitus

Uutistenlukija on suomalainen verkkolehti, joka kirjoittaa alkuperäisiä uutisartikkeleita.

Artikkeli on laadittu tekoälyavusteisesti. Lue toimitusperiaatteemme.

Jatka aiheesta Lisää teknologia-aiheisia artikkeleita