Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
shai-scan — Scanner CLI a zero dipendenze per compromissioni della supply chain npm/PyPI. Rileva pacchetti compromessi nei lockfile e IOC a livello di sistema da attacchi come Mini Shai-Hulud (CVE-2026-45321). | Kitploit
Strumenti/GitHubGitHub/digi4care/shai-scan
Gestione degli Indicatori di Compromissione (IOC)Analisi StaticaScanner di VulnerabilitàAnalisi del CodiceDevSecOpsRilevamento SegretiThreat IntelligenceSicurezza della Supply ChainRisposta agli Incidenti
GitHubdigi4care/shai-scan

shai-scan

Scanner CLI a zero dipendenze per compromissioni della supply chain npm/PyPI. Rileva pacchetti compromessi nei lockfile e IOC a livello di sistema da attacchi come Mini Shai-Hulud (CVE-2026-45321).

Vedi Repository
3 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

shai-scan

Scanner CLI senza dipendenze per compromissioni della supply chain npm e PyPI.

npm version License: MIT Node.js

Perché?

L'11 maggio 2026, un worm della supply chain auto-propagante soprannominato Mini Shai-Hulud (CVE-2026-45321, GHSA-g7cv-rxg3-hmpx) ha compromesso l'ecosistema npm. Attribuito a TeamPCP (alias DeadCatx3, PCPcat, ShellForce, CipherForce), il malware ha dirottato i token OIDC di GitHub Actions per pubblicare pacchetti dannosi con provenienza SLSA Build Level 3 valida. Ha rubato credenziali da pipeline CI/CD, provider cloud e portafogli di criptovalute e ha installato hook di persistenza in Claude Code e VS Code. Un dead-man switch integrato minacciava di cancellare la directory home dell'utente se i token npm venivano revocati.

I pacchetti colpiti includevano i pacchetti router e start di TanStack, gli SDK Mistral AI, il client OpenSearch, gli strumenti UiPath e decine di altri. Poiché gli attacchi alla supply chain si muovono velocemente, le organizzazioni hanno bisogno di uno scanner leggero e affidabile che possano eseguire ovunque senza aggiungere nuove dipendenze alla propria superficie d'attacco.

Funzionalità

  • Scansione dei lockfile — Rileva pacchetti npm e PyPI compromessi in package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb, poetry.lock, Pipfile.lock e requirements.txt
  • Controlli IOC di sistema — Analizza processi in esecuzione, artefatti del filesystem, connessioni di rete e percorsi di persistenza noti per indicatori di compromissione
  • Zero dipendenze runtime — Utilizza solo i moduli integrati di Node.js/Bun (fs, path, child_process, os). Lo scanner non aumenta il rischio della tua supply chain
  • Molteplici formati di output — Testo leggibile dall'uomo, JSON leggibile dalle macchine e SARIF per GitHub Code Scanning
  • Nativo per CI/CD — Codici di uscita progettati per l'automazione (0 = pulito, 1 = rilevamenti, 2 = errore)
  • Indipendente dal percorso — Accetta qualsiasi directory; per impostazione predefinita usa la directory di lavoro corrente
  • Database basato su campagne — Le nuove ondate di attacco vengono aggiunte come campagne distinte in src/db.ts; aggiorna il file ed esegui di nuovo

Installazione

Nessuna installazione richiesta. Esegui direttamente con il tuo package runner preferito:

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

# bunx
bunx @digi4care/shai-scan

# pnpm dlx
pnpm dlx @digi4care/shai-scan

Installazione globale (opzionale):

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

Dal sorgente:

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

Utilizzo

Analizza il progetto corrente

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

Analizza un percorso specifico

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

Output JSON per l'automazione

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

Output SARIF per GitHub Code Scanning

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

Codici di uscita 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
}

Integrazione CI/CD

GitHub Actions (output di testo)

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 (caricamento 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

Formati di output

FormatoFlagDescrizione
Testo(predefinito)Tabella leggibile dei rilevamenti con gravità, nome del pacchetto, versione e dettagli della campagna
JSON--jsonArray JSON strutturato dei rilevamenti, adatto all'ingestione in SIEM o dashboard personalizzate
SARIF--sarifFormato OASIS SARIF 2.1.0 per il caricamento su GitHub Code Scanning, GitLab Secure o altri consumatori SARIF

Esempio di estratto 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"
  }
]

Codici di uscita

CodiceSignificato
0Nessun pacchetto compromesso o IOC rilevato
1Uno o più rilevamenti trovati
2Errore runtime (percorso non valido, lockfile illeggibile, ecc.)

Aggiungere nuove campagne

Quando viene scoperto un nuovo attacco alla supply chain, aggiorna src/db.ts:

  1. Aggiungi un nuovo array CompromisedVersion[] con i pacchetti e le versioni colpiti
  2. Aggiungi un nuovo oggetto Campaign all'array CAMPAIGNS, includendo identificativi CVE/GHSA, gravità, descrizione, URL di riferimento e indicatori IOC
  3. La funzione buildLookup() ricostruisce automaticamente la mappa di ricerca alla successiva esecuzione

Non è richiesta alcuna fase di ricompilazione quando si usa Bun. Le modifiche a src/db.ts hanno effetto immediato con bun run src/cli.ts. Per il pacchetto npm, esegui pnpm run build dopo la modifica.

Considerazioni sulla sicurezza

  • Zero dipendenze runtime: Lo scanner utilizza solo moduli integrati di Node.js/Bun. Non scarica né esegue codice di terze parti in fase di runtime, eliminando il rischio che lo scanner stesso diventi un vettore di compromissione.

  • pnpm come package manager: pnpm utilizza lockfile rigorosi, non esegue script di ciclo di vita per impostazione predefinita e supporta l'archiviazione content-addressable. Queste proprietà riducono la superficie d'attacco rispetto ad altri package manager.

  • Impostazioni .npmrc consigliate: Per la massima protezione durante l'installazione dei pacchetti, aggiungi quanto segue al tuo .npmrc di progetto o globale:

    root@kitploit:~
    ignore-scripts=true
    engine-strict=true
    
  • Nessuna chiamata di rete: shai-scan non contatta server esterni, non scarica firme e non richiede una chiave API. Tutti i dati delle campagne sono inclusi nel pacchetto.

Pacchetti colpiti (campagna corrente)

I seguenti pacchetti e versioni sono noti per essere compromessi in CVE-2026-45321 (Mini Shai-Hulud Wave 4). Questo è un sottoinsieme rappresentativo; l'elenco completo è mantenuto in src/db.ts.

PacchettoEcosistemaVersioni compromesse
@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

Licenza

MIT. Vedi LICENSE per i dettagli.

Disclaimer

shai-scan è uno strumento di rilevamento, non un sostituto di audit di sicurezza completi, revisione delle dipendenze o piattaforme di threat intelligence. Identifica le versioni compromesse note in base al database incluso; gli attacchi alla supply chain nuovi o zero-day potrebbero non essere rilevati finché non viene aggiunta una campagna. Pratica sempre la difesa in profondità: audita le dipendenze, blocca le versioni, verifica la provenienza e monitora le pipeline CI/CD.

Scarica lo strumento
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