Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
tanstack-compromise-checker — Script shell pour détecter les indicateurs d'attaque de la chaîne d'approvisionnement npm TanStack (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx) | Kitploit
Outils/GitHubGitHub/fabriziosalmi/tanstack-compromise-checker
Gestion des Indicateurs de Compromission (IOC)Scanners de VulnérabilitésSécurité des ConteneursAnalyse ForensiqueAnalyse de MalwareDevSecOpsDétection de SecretsRenseignement sur les MenacesSécurité de la Chaîne Logistique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Réponse aux Incidents
GitHubfabriziosalmi/tanstack-compromise-checker

tanstack-compromise-checker

Script shell pour détecter les indicateurs d'attaque de la chaîne d'approvisionnement npm TanStack (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx)

Voir le dépôt
2168il y a 12 joursPas encore vérifié
Partager

tanstack-compromise-checker

Détectez les indicateurs de l'attaque sur la chaîne d'approvisionnement npm de TanStack sur une machine de développeur, un dépôt ou un runner CI. Script Bash, image Docker et action GitHub — même moteur, trois points d'entrée.

CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx

Le 11 mai 2026, des attaquants ont publié 84 versions malveillantes dans 42 paquets @tanstack/* via un empoisonnement du cache des actions GitHub. La charge utile vole les jetons GitHub, les jetons npm, les identifiants AWS/GCP/Azure, et installe un démon de commutateur à action différée (dead-man's switch) qui efface ~/ dès que le jeton volé est révoqué.

Démarrage rapide

Choisissez le point d'entrée qui correspond à votre environnement.

macOS / Linux / WSL2 / Git Bash

TAG=v1.0.0
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh.sha256
sha256sum -c check.sh.sha256
bash check.sh --online

Docker — fonctionne sur tous les OS supportant Docker (y compris Windows)

docker run --rm -v "$PWD":/scan \
  ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  /scan true fail tanstack-findings.json '' GHSA-g7cv-rxg3-hmpx

L'image est multi-architecture (linux/amd64, linux/arm64) et est livrée avec une provenance de construction signée via GitHub OIDC. Vérifiez avant d'exécuter :

gh attestation verify \
  oci://ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  --repo fabriziosalmi/tanstack-compromise-checker

GitHub Action — bloquer les dépendances compromises en CI

permissions: {}

jobs:
  check:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
      - uses: fabriziosalmi/tanstack-compromise-checker@v1
        with:
          scan-dir: .
          online: 'true'
          fail-on: fail

Un workflow complet durci se trouve dans .github/workflows/tanstack-check.yml et c'est le même workflow que ce dépôt utilise contre lui-même.

Ce que le script vérifie

#VérificationDescription
1Commutateur à action différée~/.local/bin/gh-token-monitor.sh, LaunchAgents + LaunchDaemons (macOS), unités systemd utilisateur + système (Linux), processus en cours d'exécution
2Persistancefichiers rc du shell, crontab utilisateur/système, /etc/cron.*, démarrage automatique XDG, core.hooksPath git global
3Identifiantsvariables d'environnement sensibles, ~/.npmrc, ~/.yarnrc.yml, ~/.aws/credentials, ~/.config/gh/hosts.yml, ~/.netrc, ~/.docker/config.json, ~/.kube/config, énumération des fichiers .env*
4IOC réseauprocessus node en cours d'exécution avec des connexions TCP sortantes établies (heuristique, vérification manuelle)
5Analyse du dépôtdépendances déclarées dans package.json + versions épinglées dans le fichier de verrouillage (package-lock.json, yarn.lock, pnpm-lock.yaml)
6Installénode_modules/@tanstack/*/package.json vérifié par rapport à la liste des versions malveillantes connues, puis par rapport au registre npm time[<version>] avec --online
7Indices Actions.github/workflows/* scanné pour pull_request_target, --ignore-scripts manquant, utilisation de actions/cache
8IOC Mini Shai-Huludfichiers de charge utile dans node_modules (router_init.js, tanstack_runner.js), dépendance optionnelle @tanstack/setup, falsification de configuration d'outil IA, domaines C2 dans le code source, auteur de commit malveillant + motifs de branche, jetons npm marqués pour rançon, paquets secondaires propagés par ver, plus heuristiques de niveau information pour les formes de charge utile inconnues

Avec --online, le script récupère également l'avis GHSA au moment de l'exécution afin que la couverture de détection suive l'état en direct de l'avis au lieu d'une liste codée en dur de versions.

Famille affectée : @tanstack/router, @tanstack/react-router, @tanstack/history, @tanstack/start, @tanstack/eslint-plugin-router et paquets associés.

Familles propres (non affectées) : @tanstack/react-query, @tanstack/react-table, @tanstack/react-virtual, @tanstack/form, @tanstack/store.

Utilisation

# Vérification rapide (répertoire personnel de l'utilisateur actuel)
bash check.sh

# Mode en ligne : interroger l'avis GHSA et l'heure de publication du registre npm
bash check.sh --online

# Scanner un répertoire spécifique
bash check.sh --scan-dir /chemin/vers/vos/depots

# Sortie JSON pour intégration CI/SIEM
bash check.sh --json > findings.json

# Suggérer des commandes d'épinglage pour les dépôts affectés (essai à blanc)
bash check.sh --scan-dir /chemin/vers/depots --fix

# Fournir une liste étendue de versions malveillantes connues
bash check.sh --bad-versions-file ./extra-bad-versions.txt

Toutes les options

OptionDescription
--scan-dir REPERTOIRERépertoire racine à scanner (par défaut : $HOME). Refuse de scanner les répertoires système comme /, /etc, /usr.
--onlineInterroger l'avis GHSA et le time[<version>] du registre npm pour confirmer la compromission. Désactivé par défaut — activable.
--ghsa ID-GHSASurcharger l'identifiant d'avis utilisé avec --online (par défaut GHSA-g7cv-rxg3-hmpx).
--attack-window-start ISO, --attack-window-end ISOSurcharger la fenêtre de publication utilisée avec --online.
--fixAfficher les commandes d'épinglage recommandées pour les dépôts affectés (essai à blanc par défaut).
--applyAvec --fix : activer l'exécution. Actuellement, refuse encore les update aveugles ; l'épinglage manuel est requis.
--yes, -yIgnorer l'invite de confirmation pour --apply.
--jsonÉmettre les résultats au format JSON sur stdout (implique --quiet).
--bad-versions-file FICHIERAjouter des entrées (paquet@version, une par ligne) à la liste des versions malveillantes connues.
--no-colorDésactiver les couleurs ANSI.
--quiet, -qSupprimer la sortie par vérification, n'afficher que le résumé.
-h, --helpAfficher l'aide.

Codes de sortie

CodeSignification
0Propre — aucun indicateur dans le périmètre scanné
1Avertissements uniquement — révision recommandée
2Échecs — indicateurs de compromission présents
3Erreur d'outil/d'utilisation

Posture de sécurité

Ce dépôt se défend contre la même classe d'attaque qu'il détecte. Concrètement :

Télécharger l’outil