dsh-taintguard
Indirect prompt-injection guard for DeepSeek Harness: taints tool output by origin and gates privileged tool calls that follow untrusted content
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sashankh/dsh-taintguard说明文档
阅读完整 README ↗Configuration
| Key | Default | Meaning |
|---|---|---|
mode | ask | ask routes a gated call to the operator, deny refuses it, observe only annotates. |
untrustedSources | web_fetch, web_search, read, read_image, mcp__* | Tools whose results carry externally controlled content. |
privilegedSinks | bash, pwsh, run_code, write, edit, str_replace_editor, cordis_*, schedule_create, subagent, send_message | Tools gated once the agent is tainted. |
egressSinks | web_fetch, bash, pwsh, run_code | Tools whose arguments are scanned for credentials on every call. |
canaries | [] | Marker strings that must never leave; any occurrence in an egress argument is refused. |
mediumQuorum | 2 | Medium-confidence signals required to taint when no high-confidence signal matched. |
maxScanChars | 20000 | Characters scanned per result and per argument set. |
annotateUntrustedResults | true | Whether to re-frame a tainted result as quoted data. |
Names are *-wildcard patterns over tool names. A pattern that matches nothing currently registered is legal, so mcp__* can be declared before any MCP server is configured.