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
mcp-stdio-shellguard — Pacchetto di difesa in profondità per server MCP stdio: wrapper guardExec/guardSpawn sostitutivi, CLI di audit AST, server MCP di riferimento. Risolve la vulnerabilità di classe stdio-RCE che ha colpito 200k server (Ox-Security) (LiteLLM CVE-2025-69256). MIT, TypeScript, Node >= 20. | Kitploit
Strumenti/GitHubGitHub/studiomeyer-io/mcp-stdio-shellguard
Analisi StaticaScanner di VulnerabilitàAnalisi del CodiceScripting e AutomazioneDevSecOpsUtilità e FrameworkSicurezza della Supply ChainSicurezza delle API

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 →

Informazioni

GitHub
studiomeyer-io/mcp-stdio-shellguard

mcp-stdio-shellguard

Vedi Repository
2 mesi faNon ancora revisionato

Pacchetto di difesa in profondità per server MCP stdio: wrapper guardExec/guardSpawn sostitutivi, CLI di audit AST, server MCP di riferimento. Risolve la vulnerabilità di classe stdio-RCE che ha colpito 200k server (Ox-Security) (LiteLLM CVE-2025-69256). MIT, TypeScript, Node >= 20.

Condividi

Parte dello StudioMeyer MCP Stack — Realizzato a Maiorca 🌴 · ⭐ se lo usi

mcp-stdio-shellguard

npm version npm downloads License Last commit GitHub stars

Bundle difesa-in-profondità per server MCP stdio. Avvolge `child_process.exec/spawn` con lista consentita + sandbox + rilevamento replay, più una CLI di audit AST (`mcp-shellguard-audit`) che scansiona le sorgenti dei server MCP per chiamate shell non sanificate. Chiude la classe Ox-Security MCP stdio-RCE (200k server vulnerabili, divulgazione maggio 2026).
  • Specifica MCP: 2025-06-18
  • SDK: @modelcontextprotocol/sdk ^1.29.0
  • Node: >= 20
  • Licenza: MIT
  • Autore: Matthias Meyer (StudioMeyer)

Installa

root@kitploit:~
npm install mcp-stdio-shellguard

Oppure esegui la CLI di audit direttamente senza installare:

root@kitploit:~
npx -y -p mcp-stdio-shellguard mcp-shellguard-audit scan ./src

Cosa ti offre

Tre livelli, attivabili singolarmente:

  1. API Libreria — guardExec / guardSpawn integrabili che chiami dal tuo server MCP. Lista consentita predefinita-negata, profili sandbox, finestra replay.
  2. CLI di Audit — mcp-shellguard-audit scan <path> esamina l'AST, segnala 12 anti-pattern da BASSO (no timeout) a CRITICO (exec(\...${userInput}...`)`).
  3. Server MCP di riferimento — mcp-stdio-shellguard-demo espone 8 strumenti così che MCP Inspector / Claude Desktop possano guidare direttamente il bundle.

Strumenti (server di riferimento)

Profili sandbox

Il chiamante può stringere tramite timeoutMs / fdBudget per chiamata. Il chiamante non può allargare oltre il profilo.

Livelli di fiducia

LivelloCondizione
BASSOstrumento non registrato (predefinito-negato)
MEDIOregistrato ma vuoto (qualsiasi argomento consentito)

Solleva BASSO → CRITICO registrando lo strumento + impostando argsPatterns + eseguendo tramite guardExec/guardSpawn (che attivano sempre sandbox + replay).

Avvio rapido libreria

root@kitploit:~
import {
  AllowlistRegistry,
  ReplayWindow,
  guardExec,
} from "mcp-stdio-shellguard";

const registry = new AllowlistRegistry();
const replay = new ReplayWindow();

registry.register({
  toolName: "git-log",
  executable: "/usr/bin/git",
  argsPatterns: ["^log$", "^--oneline$", "^-n$", "^\\d+$"],
  sandboxProfile: "strict",
});

const result = await guardExec(
  {
    toolName: "git-log",
    command: "/usr/bin/git",
    args: ["log", "--oneline", "-n", "10"],
  },
  { registry, replay },
);

console.log(result.stdout); // → commit lines
console.log(result.trustTier); // → "CRITICAL"
console.log(result.canonicalHash); // → 64-char SHA-256

CLI di Audit

root@kitploit:~
mcp-shellguard-audit scan ./src
mcp-shellguard-audit scan ./src --format sarif --output audit.sarif
mcp-shellguard-audit scan ./src --severity-floor HIGH    # CI gate

Codici di uscita:

  • 0 pulito (nessun risultato al livello o superiore)
  • 1 risultati presenti
  • 2 errori di parsing / IO

Raccolta anti-pattern (12 regole)

Lo scanner risolve i binding child_process rinominati prima di confrontarli, quindi le forme pericolose sotto vengono catturate anche quando la chiamata passa attraverso un alias piuttosto che un letterale child_process.exec:

  • const execAsync = promisify(exec); execAsync(...${x})
  • import cp from "node:child_process"; cp.exec(...${x})
  • const { exec: sh } = require("child_process"); sh(...${x})
  • import { exec as run } from "node:child_process"; run(...)

Le varianti sincrone (spawnSync, execFileSync) condividono le loro regole asincrone, e shell_true_option si attiva anche su una shell stringa ({ shell: "/bin/sh" }) o un valore shell dinamico — non solo il letterale { shell: true }. Un promisify di una funzione non-child_process, una destrutturazione da un altro modulo, e { shell: false } rimangono puliti (nessun falso positivo).

Pragmi

  • // shellguard:ignore-next-line — sopprime un risultato
  • // shellguard:ignore-file — sopprime l'intero file (raro; preferire per riga)

Perché esiste

Ox-Security ha divulgato (2026-05) che oltre 200k server MCP stdio avvolgono child_process.exec con template literal che trasportano input utente direttamente dagli argomenti degli strumenti LLM. LiteLLM v1.83.6 era l'esempio canonico (CVE corretto in 1.83.7). Questo bundle è la controparte di sicurezza difensiva: un guard + scanner integrabile che chiude la classe. Ispirato da AWS Linux seccomp + livelli sandbox di Chromium.

Vedi anche

  • HOOK_RECIPES.md — ricette hook di Claude Code che bloccano automaticamente chiamate pericolose agli strumenti
  • CHANGELOG.md — cronologia delle versioni
  • Ox-Security MCP audit: https://venturebeat.com/security/200000-mcp-stdio-servers/
  • LiteLLM CVE-2026-XXXX: https://github.com/BerriAI/litellm/security/advisories

Licenza

MIT — Copyright (c) 2026 Matthias Meyer (StudioMeyer)

Scarica lo strumento
StrumentoTipoScopo
guard_execdistruttivoProtegge child_process.exec. Impone vettore args[], lista consentita + sandbox + replay. Restituisce stdout, stderr, exitCode, canonicalHash, isReplay, trustTier.
guard_spawndistruttivoProtegge child_process.spawn. Restituisce hash SHA-256 di stdout/stderr invece dei corpi completi. Rifiuta duramente shell:true.
register_allowlistmutanteRegistra un nome di strumento con regex eseguibile + argomenti. Senza registrazione si applica il predefinito-negato.
audit_sourcesola letturaScansiona un percorso TS/JS per anti-pattern di shell injection. Restituisce AuditFinding[] + sommario.
audit_reportsola letturaFormatta un risultato audit come markdown / json / SARIF 2.1.0.
replay_checksola letturaCalcola l'hash SHA-256 canonico per un'invocazione e segnala se è già presente nella finestra replay.
sandbox_statussola letturaRiporta il profilo sandbox attivo + limiti concreti + flag cgroup-v2 attivo.
trust_tiersola letturaDeriva il livello BASSO/MEDIO/ALTO/CRITICO per uno strumento registrato più suggerimenti di miglioramento.
ProfiloTimeoutMax stdoutMax stderrBudget FDcgroup-v2
strict5 s1 MB256 KB32sì (cpu/memoria)
standard (predefinito)30 s10 MB1 MB256sì
permissive5 min100 MB10 MB1024no
argsPatterns
ALTOargsPatterns impostato ma sandbox o tracciatore replay inattivo
CRITICOargsPatterns + sandbox + replay tutti attivi
IDGravitàSi attiva su
exec_template_literal_with_inputCRITICOchild_process.exec(\ls ${x}`)`
exec_dynamic_stringCRITICOchild_process.exec(cmd)
exec_sync_dynamic_stringCRITICOchild_process.execSync(cmd)
eval_near_child_processCRITICOeval(...)
function_constructor_near_child_processCRITICOnew Function(...)
spawn_dynamic_file_argsALTOspawn(bin, userArgs)
exec_file_dynamicALTOexecFile(bin, ...)
shell_true_optionALTO{ shell: true }
os_system_equivalentALTODeno.run / Bun.spawn
spawn_literal_dynamic_argsMEDIOspawn('git', userArgs)
unbounded_bufferBASSOexec senza maxBuffer
missing_timeoutBASSOexec/spawn senza timeout