Skip to content
KitploitKITPLOIT
OutilsBlog
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
shai-scan — Analyseur CLI sans dépendances pour les compromissions de chaîne d'approvisionnement npm/PyPI. Détecte les paquets compromis dans les lockfiles et les IOC au niveau système provenant d'attaques comme Mini Shai-Hulud (CVE-2026-45321). | Kitploit
Outils/GitHubGitHub/digi4care/shai-scan
Gestion des Indicateurs de Compromission (IOC)Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeDevSecOpsDétection de SecretsRenseignement sur les MenacesSécurité de la Chaîne LogistiqueRéponse aux Incidents
GitHubdigi4care/shai-scan

shai-scan

Analyseur CLI sans dépendances pour les compromissions de chaîne d'approvisionnement npm/PyPI. Détecte les paquets compromis dans les lockfiles et les IOC au niveau système provenant d'attaques comme Mini Shai-Hulud (CVE-2026-45321).

7il y a 3 moisPas encore vérifié

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 →
Voir le dépôt
Partager

shai-scan

Scanner CLI sans dépendances pour les compromissions de la chaîne d'approvisionnement npm et PyPI.

npm version License: MIT Node.js

Pourquoi ?

Le 11 mai 2026, un ver auto-propagateur de la chaîne d'approvisionnement surnommé Mini Shai-Hulud (CVE-2026-45321, GHSA-g7cv-rxg3-hmpx) a compromis l'écosystème npm. Attribué à TeamPCP (aka DeadCatx3, PCPcat, ShellForce, CipherForce), le malware a détourné les jetons OIDC de GitHub Actions pour publier des paquets malveillants avec une provenance SLSA Build Level 3 valide. Il a dérobé des identifiants depuis les pipelines CI/CD, les fournisseurs cloud et les portefeuilles de cryptomonnaies, et installé des crochets de persistance dans Claude Code et VS Code. Un interrupteur de sécurité intégré menaçait d'effacer le répertoire personnel de l'utilisateur si les jetons npm étaient révoqués.

Les paquets affectés comprenaient TanStack router et start packages, les SDK Mistral AI, le client OpenSearch, les outils UiPath et des dizaines d'autres. Les attaques de la chaîne d'approvisionnement évoluant rapidement, les organisations ont besoin d'un scanner léger et fiable qu'elles peuvent exécuter n'importe où sans ajouter de nouvelles dépendances à leur propre surface d'attaque.

Fonctionnalités

  • Analyse des lockfiles — Détecte les paquets npm et PyPI compromis dans package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb, poetry.lock, Pipfile.lock et requirements.txt
  • Vérifications IOC système — Scanne les processus en cours, les artefacts du système de fichiers, les connexions réseau et les chemins de persistance connus pour détecter des indicateurs de compromission
  • Zéro dépendance d'exécution — Utilise uniquement les modules natifs de Node.js/Bun (fs, path, child_process, os). Le scanner n'augmente pas votre risque de chaîne d'approvisionnement
  • Formats de sortie multiples — Texte lisible, JSON interprétable par machine et SARIF pour GitHub Code Scanning
  • Natif CI/CD — Codes de sortie conçus pour l'automatisation (0 = propre, 1 = résultats trouvés, 2 = erreur)
  • Indépendant du chemin — Accepte n'importe quel répertoire ; par défaut, le répertoire de travail actuel
  • Base de données basée sur les campagnes — Les nouvelles vagues d'attaques sont ajoutées sous forme de campagnes discrètes dans src/db.ts ; mettez à jour le fichier et relancez

Installation

Aucune installation requise. Exécutez directement avec votre gestionnaire de paquets de votre choix :

root@kitploit:~
# npx
npx @digi4care/shai-scan

# bunx
bunx @digi4care/shai-scan

# pnpm dlx
pnpm dlx @digi4care/shai-scan

Installation globale (optionnelle) :

root@kitploit:~
npm install -g @digi4care/shai-scan
# or
pnpm add -g @digi4care/shai-scan

Depuis les sources :

root@kitploit:~
git clone https://github.com/digi4care/shai-scan.git
cd shai-scan
pnpm install
bun run src/cli.ts --help   # Bun (recommandé pour le développement)
# or build and run with Node.js:
pnpm run build && node dist/cli.js --help

Utilisation

Analyser le projet courant

root@kitploit:~
npx @digi4care/shai-scan

Analyser un chemin spécifique

root@kitploit:~
npx @digi4care/shai-scan ~/projects/my-app

Sortie JSON pour l'automatisation

root@kitploit:~
npx @digi4care/shai-scan --json .

Sortie SARIF pour GitHub Code Scanning

root@kitploit:~
npx @digi4care/shai-scan --sarif --sarif-file results.sarif .

Codes de sortie CI/CD

root@kitploit:~
#!/bin/bash
npx @digi4care/shai-scan --severity high . || {
  code=$?
  if [ "$code" -eq 1 ]; then
    echo "Supply chain findings detected"
    exit 1
  elif [ "$code" -eq 2 ]; then
    echo "Scanner error"
    exit 2
  fi
}

Intégration CI/CD

GitHub Actions (sortie texte)

root@kitploit:~
name: Supply Chain Scan
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: pnpm install --frozen-lockfile
      - run: npx @digi4care/shai-scan --severity high .

GitHub Actions (téléchargement SARIF)

root@kitploit:~
name: Supply Chain Scan SARIF
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '0 6 * * 1'

jobs:
  scan:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: pnpm install --frozen-lockfile
      - run: npx @digi4care/shai-scan --sarif --sarif-file results.sarif .
      - uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

Formats de sortie

FormatFlagDescription
Texte(par défaut)Tableau lisible des résultats avec sévérité, nom du paquet, version et détails de la campagne
JSON--jsonTableau JSON structuré des résultats, adapté à l'ingestion dans des SIEM ou des tableaux de bord personnalisés
SARIF--sarifFormat OASIS SARIF 2.1.0 pour téléchargement sur GitHub Code Scanning, GitLab Secure ou autres consommateurs SARIF

Exemple d'extrait JSON :

root@kitploit:~
[
  {
    "package": "@tanstack/react-router",
    "version": "1.169.5",
    "ecosystem": "npm",
    "severity": "critical",
    "campaign": "mini-shai-hulud-wave4",
    "cve": "CVE-2026-45321",
    "reference": "https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx"
  }
]

Codes de sortie

CodeSignification
0Aucun paquet compromis ou IOC détecté
1Un ou plusieurs résultats détectés
2Erreur d'exécution (chemin invalide, lockfile illisible, etc.)

Ajout de nouvelles campagnes

Lorsqu'une nouvelle attaque de la chaîne d'approvisionnement est découverte, mettez à jour src/db.ts :

  1. Ajoutez un nouveau tableau CompromisedVersion[] avec les paquets et versions affectés
  2. Ajoutez un nouvel objet Campaign au tableau CAMPAIGNS, incluant les identifiants CVE/GHSA, la sévérité, la description, les URL de référence et les indicateurs IOC
  3. La fonction buildLookup() reconstruit automatiquement la table de correspondance lors de la prochaine exécution

Aucune étape de reconstruction n'est nécessaire lors de l'utilisation de Bun. Les modifications apportées à src/db.ts prennent effet immédiatement avec bun run src/cli.ts. Pour le paquet npm, exécutez pnpm run build après l'édition.

Considérations de sécurité

  • Zéro dépendance d'exécution : Le scanner utilise uniquement les modules natifs de Node.js/Bun. Il ne télécharge ni n'exécute de code tiers au moment de l'exécution, éliminant ainsi le risque que le scanner lui-même devienne un vecteur de compromission.

  • pnpm comme gestionnaire de paquets : pnpm utilise des lockfiles stricts, n'exécute pas les scripts de cycle de vie par défaut et prend en charge le stockage à adressage de contenu. Ces propriétés réduisent la surface d'attaque par rapport à d'autres gestionnaires de paquets.

  • Paramètres recommandés pour .npmrc : Pour une protection maximale lors de l'installation des paquets, ajoutez ce qui suit à votre .npmrc de projet ou global :

    root@kitploit:~
    ignore-scripts=true
    engine-strict=true
    
  • Aucun appel réseau : shai-scan ne téléphone pas à la maison, ne télécharge pas de signatures et ne nécessite pas de clé API. Toutes les données de campagne sont fournies avec le paquet.

Paquets affectés (Campagne actuelle)

Les paquets et versions suivants sont connus pour être compromis dans CVE-2026-45321 (Mini Shai-Hulud Wave 4). Il s'agit d'un sous-ensemble représentatif ; la liste complète est maintenue dans src/db.ts.

PaquetÉcosystèmeVersions compromises
@tanstack/react-routernpm1.169.5, 1.169.8
@tanstack/vue-routernpm1.169.5, 1.169.8
@tanstack/solid-routernpm1.169.5, 1.169.8
@tanstack/router-corenpm1.169.5, 1.169.8
@tanstack/react-startnpm1.167.68, 1.167.71
@mistralai/mistralainpm2.2.2, 2.2.3, 2.2.4
@mistralai/mistralai-azurenpm1.7.2, 1.7.3
mistralaipypi2.4.6
@opensearch-project/opensearchnpm3.5.3, 3.6.2, 3.7.0, 3.8.0
@uipath/robotnpm1.3.4
@squawk/airwaysnpm0.4.2, 0.4.3, 0.4.5
@draftauth/corenpm0.13.1, 0.13.2
@tallyui/corenpm0.2.1, 0.2.2, 0.2.3
safe-actionnpm0.8.3, 0.8.4
cmux-agent-mcpnpm0.1.3 - 0.1.8
nextmove-mcpnpm0.1.3, 0.1.4, 0.1.5, 0.1.7
ts-dnanpm3.0.1, 3.0.2, 3.0.4
cross-stitchnpm1.1.3, 1.1.4, 1.1.6
git-git-gitnpm1.0.8 - 1.0.12
git-branch-selectornpm1.3.3 - 1.3.7
agentwork-clinpm0.1.4, 0.1.5
wot-apinpm

Licence

MIT. Voir LICENSE pour plus de détails.

Avertissement

shai-scan est un outil d'aide à la détection, et non un substitut à des audits de sécurité complets, à une revue des dépendances ou à des plateformes de renseignement sur les menaces. Il identifie les versions compromises connues sur la base de la base de données fournie ; les attaques nouvelles ou zero-day de la chaîne d'approvisionnement peuvent ne pas être détectées tant qu'une campagne n'a pas été ajoutée. Adoptez toujours une défense en profondeur : auditez les dépendances, figez les versions, vérifiez la provenance et surveillez les pipelines CI/CD.

Télécharger l’outil
0.8.1, 0.8.2, 0.8.4
ml-toolkit-tsnpm1.0.4, 1.0.5
@beproduct/nestjs-authnpm0.1.2 - 0.1.19
@dirigible-ai/sdknpm0.6.2, 0.6.3
@taskflow-corp/clinpm0.1.24 - 0.1.29
@tolka/clinpm1.0.2, 1.0.3, 1.0.4, 1.0.6
@supersurkhet/clinpm0.0.2 - 0.0.7
guardrails-aipypi0.10.1