Kommentaren «npm publish» ga Shai-Hulud-ormen publiseringstilgang
Bytt til 0.5.3, 1.6.2, 2.2.0 eller 3.0.2 og isoler maskinen før du rekker å tilbakekalle et eneste token.
JFrog Security Research meldte 28. august om en ny bølge av Mini Shai-Hulud i npm-pakken @7nohe/openapi-react-query-codegen, en kodegenerator for TanStack Query. Registeret til npm viser at åtte infiserte versjoner gikk ut mellom klokka 20.00 og 20.21 UTC samme kveld: 0.5.4, 1.6.3, 2.2.1 og 3.0.3 i første pulje, så 0.5.5, 1.6.4, 2.2.2 og 3.0.4 tjue minutter senere. Pakken lastes ned rundt 156 000 ganger i uka.
Inngangen var publiseringsflyten, ikke en stjålet passordfrase. Prosjektets release-arbeidsflyt tolket enhver kommentar på en pull request som besto av nøyaktig teksten «npm publish» som et signal om å slippe en ny versjon. Den sjekket så ut den aktuelle pull requesten og publiserte med GitHub Actions OIDC og id-token: write, uten å kontrollere at kommentatoren var vedlikeholder. Brukeren p00paboot åpnet PR-ene og skrev kommentaren. Resultatet er at de infiserte versjonene har ekte provenance-signatur, som bare beviser at jobben kjørte i riktig repo.
Selve utløseren er gjemt bedre enn i tidligere bølger. Andre pulje la på en vanlig preinstall-hook, men begge puljene plantet også en binding.gyp der den virkelige kommandoen ligger i et conditions-uttrykk skrevet som Unicode-escapes. node-gyp evaluerer conditions som Python, så uttrykket vandrer gjennom klassetreet til catch_warnings, når __builtins__ og kjører os.system på en 4 til 6 megabyte stor XOR-pakket laster. Å installere med --ignore-scripts hopper over hooken, men ikke over node-gyp.
Under emballasjen er dette samme orm som før. Den henter Bun 1.4.0 fra det ekte oven-sh-repoet hvis Bun mangler, stjeler legitimasjon fra GitHub, npm, PyPI, RubyGems, skyleverandører, Vault og Kubernetes, og skraper minnet til Runner.Worker etter felter merket "isSecret":true. Tyvegodset havner kryptert i et offentlig repo under offerets eget token. En egen arbeidsflyt kalt «ClaudeCode Review» dumper alle repo-hemmeligheter til et artefakt, og ormen planter kroker i Claude, VS Code, Cursor, Gemini, Copilot og Aider.
Fella er tilbakekallingen. Ormen legger igjen en tjeneste som poller GET /user for å se om tokenet fortsatt lever. Svarer npm eller GitHub med en 40x-kode, kan den lagrede håndtereren slette hjemmekatalogen og Dokumenter-mappa. Rekkefølgen på oppryddingen er derfor ikke en detalj.
«Gyldig provenance på disse versjonene er ingen frisk-attest» — JFrog Security Research
Hva bør du gjøre?
- Isoler maskinen eller runneren fysisk fra nettet først. Ikke tilbakekall noen tokens før overvåkeren er borte.
- Stopp og deaktiver brukertjenestene
systemd-detect-fashogsysvinit-detect-fash, som ligger som user-units på Linux og LaunchAgent på macOS. Fjern~/.local/share/diaper/,/var/tmp/.shitog midlertidige kataloger som starter medtrinnyyyy. - Pin til 0.5.3, 1.6.2, 2.2.0 eller 3.0.2, bygg lockfilene på nytt, og roter deretter alle nøkler fra en ren maskin.
- Gå gjennom egne release-arbeidsflyter for regler som utløses av kommentarer. Krev at avsenderen har skrivetilgang før en jobb med
id-token: writefår kjøre.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.