Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Mini Shai-Hulud de TeamPCP (TanStack)

3 min de lecture
Améliorer cette page
Point de compromission dans la chaîne Rupture · étape Registres
Source
amont
Dépendances
deps
Build & CI
ci
Packaging
artefact
Release
provenance
Registres
Registres
Déploiement
admission
Runtime
exécution
Rayon d'explosion : compromission à l'étape Registres, propagation possible aux consommateurs. Domaines : Orchestration, Release, Secrets
Gravité critique
Le Mini Shai-Hulud de TeamPCP revient : un ver auto-propageant compromet des paquets npm TanStack.
84 versions
malveillantes
42
paquets @tanstack
SLSA L3
attestations valides
2,3 Mo
charge obfusquée

En bref

Date
12/05/2026
Gravité
Critique
Étape de la chaîne
Registres
Domaines SOCLE
Orchestration+ Release, Secrets

Que s'est-il passé ?

Contexte

Le groupe TeamPCP lance une vague de son ver Mini Shai-Hulud, compromettant des paquets npm légitimes via leur propre pipeline de release GitHub Actions et des jetons OIDC détournés.

Mécanisme

Escalade rare : les paquets piégés portent des attestations SLSA Build L3 valides, premier ver npm documenté produisant des paquets malveillants validement attestés. Sur TanStack, l'attaque chaîne un Pwn Request (pull_request_target), l'empoisonnement du cache Actions et l'extraction du jeton OIDC depuis la mémoire du runner.

Impact

84 versions malveillantes sur 42 paquets @tanstack/*, avec propagation à UiPath et DraftLab. La charge (2,3 Mo) lit la mémoire du runner, moissonne 100+ chemins de secrets, et plante une persistance dans Claude Code et VS Code. Exfiltration via Session Protocol et l'API GraphQL GitHub.

Parades

L'attestation ne suffit pas : ajouter un gate d'approbation, neutraliser les Pwn Requests (pas de secrets sur pull_request_target), isoler le cache par tenant, permissions minimales des runners, et détecter la republication.

Comment l'attaquant a procédé

Cet incident met en jeu les vecteurs d'attaque suivants du catalogue SOCLE ; chacun renvoie à sa fiche, où l'on trouve les exigences qui le neutralisent :

La leçon à en tirer

Ce qu'il faut retenir

Identités de publication courtes (OIDC) ; détection de republication ; confinement du rayon d'explosion (egress filtre).

Les exigences SOCLE qui auraient limité cet incident

Cet incident se rattache à 5 exigences du référentiel, par domaine. Les satisfaire n'aurait pas forcément tout empêché, mais aurait réduit la probabilité de l'attaque, limité son impact ou accéléré sa détection :

Pour aller plus loin

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn