
Test black-box se un chatbot LLM è vulnerabile all'esfiltrazione markdown/HTML (classe CVE-2025-32711). Avvia un sink, invia payload, renderizza in Chromium headless, correla tramite rete.
Tester black-box per iniezione indiretta di prompt che porta all'esfiltrazione di markdown / HTML in chatbot basati su LLM. Questa è la classe di vulnerabilità che ha colpito Microsoft 365 Copilot (CVE-2025-32711, aka EchoLeak), ChatGPT (patch OpenAI Febbraio 2026) e Salesforce (ForcedLeak). Lo schema:
 nella sua risposta.Gli strumenti esistenti (Garak, Augustus, Promptfoo) sono ottimi per testare l'iniezione a livello di testo ma non chiudono l'oracolo lato render — "il tuo frontend ha effettivamente recuperato l'URL dell'attaccante?" Questa è la vera vulnerabilità. Questo strumento colma questa lacuna.
npx valtik-markdown-exfil-tester https://your-chatbot.example.com
Non eseguire questo strumento contro chatbot di cui non possiedi o non hai esplicita autorizzazione scritta per testare. Eseguire questo strumento contro un chatbot LLM di terze parti senza autorizzazione è molto probabilmente una violazione dei termini di servizio e potrebbe essere illegale nella tua giurisdizione (CFAA negli Stati Uniti, Computer Misuse Act nel Regno Unito, leggi simili nell'UE).
Casi d'uso legittimi:
Valtik Studios LLC declina ogni responsabilità per l'uso non autorizzato.
127.0.0.1 su una porta alta casuale. Ogni richiesta in arrivo viene registrata con timestamp, percorso, query, intestazioni, Referer, IP, User-Agent.<svg>, sfondo CSS, <link rel=prefetch>, ecc. che punta al sink locale.confirmed — il sink ha ricevuto un hit. Critico. L'esfiltrazione funziona.browser-tried — il browser ha emesso il fetch ma è fallito (CSP, referrer policy, sanitizer). Medio. Difesa tenuta ma fragile — non fare affidamento solo su CSP.llm-emitted — la risposta del LLM conteneva l'URL del sink ma il frontend non lo ha renderizzato come fetch. Basso.refused — la risposta del LLM non conteneva il payload. Difesa tenuta.inconclusive — nessuna risposta dal LLM.Esegui senza installazione:
npx valtik-markdown-exfil-tester https://chat.example.com
Oppure installa globalmente:
npm install -g valtik-markdown-exfil-tester
npx playwright install chromium
markdown-exfil-tester https://chat.example.com
Richiede Node 20+.
Usage: valtik-markdown-exfil-tester <chatbot-url> [options]
Arguments:
chatbot-url URL of the chatbot endpoint or page
Options:
--mode <type> direct | indirect-doc (default: direct)
--endpoint <url> API endpoint if different from chatbot-url
--sink-port <n> Local sink port (default: random high port)
--payloads <path> Override payload library JSON
--browser <bin> playwright | none (default: auto-detect)
--auth <cookie> Auth cookie for the chatbot, if needed
--timeout <s> Per-payload wait (default 30)
--max-payloads <n> Stop after N payloads (default: all)
--rate-limit-ms <n> Delay between payloads (default 3000)
--out-dir <dir> Working dir for indirect-doc (default: /tmp/...)
--user-agent <ua>
--json Machine-readable output
--fail-on <level> Exit non-zero on severity >= level (critical|high|medium|low)
-v, --version
-h, --help
direct (v0.1) — invia il payload direttamente all'endpoint del chatbot. Testa l'iniezione di prompt diretta. Segnale più debole dell'indiretta, ma veloce.indirect-doc (v0.1) — scrive ogni payload come documento markdown autonomo in --out-dir. Carichi ogni file nella knowledge base / fonte RAG / sistema di ticket / wiki del chatbot, poi interroghi il chatbot. Lo strumento attende --timeout secondi per payload per un hit del sink taggato con l'id di quel payload.indirect-pr (v0.2, non ancora implementato) — automatizza la consegna del corpo PR GitHub per revisori PR in stile Copilot.attach (v0.2, non ancora implementato) — carica il file tramite il flusso di upload del chatbot.# Fast test with first 10 payloads
npx valtik-markdown-exfil-tester https://chat.example.com --max-payloads 10
# JSON output for CI
npx valtik-markdown-exfil-tester https://chat.example.com --json | jq .findings
# Fail the CI job on any high-severity finding
npx valtik-markdown-exfil-tester https://chat.example.com --fail-on high
# Indirect-doc mode: generate docs, upload them manually, then re-run
npx valtik-markdown-exfil-tester https://chat.example.com \
--mode indirect-doc --out-dir ./payload-docs --timeout 60
Fornisce 30+ modelli che coprono: