Problem
The static scanner is English-only. Production MCP server surveys (MCPTox, MCPLIB — 2,000+ real-world servers) have found tool-poisoning payloads in Russian, Simplified Chinese, and Arabic. These evade fuzzd entirely today.
The fix doesn't require a translation API or ML model — a targeted set of AC needles covering direct translations of the highest-confidence imperative patterns is sufficient for the first pass.
Scope (first pass)
Translate the ~20 patterns in ImperativeOverride and StealthLanguage that have the highest per-pattern true positive rate in the English scanner into:
| Language |
Example |
| Russian |
"игнорируй инструкции" (ignore instructions), "обязательно" (mandatory), "не раскрывай" (do not disclose) |
| Simplified Chinese |
"忽略之前的指令" (ignore previous instructions), "必须" (must), "不要告诉" (do not tell) |
| Arabic |
"تجاهل التعليمات" (ignore instructions), "يجب" (must) |
These can be added as a 5th AC automaton pass (separate OnceLock<AhoCorasick>) so they don't affect the existing English automaton's pattern index.
Acceptance criteria
Notes
- Unicode normalization (NFC/NFD) matters here — ensure the needles and inputs are normalized consistently before matching
- Do not use
String::from_utf8_lossy (prohibited by CLAUDE.md); use str::from_utf8 + explicit error handling for any byte-level input
References
Problem
The static scanner is English-only. Production MCP server surveys (MCPTox, MCPLIB — 2,000+ real-world servers) have found tool-poisoning payloads in Russian, Simplified Chinese, and Arabic. These evade fuzzd entirely today.
The fix doesn't require a translation API or ML model — a targeted set of AC needles covering direct translations of the highest-confidence imperative patterns is sufficient for the first pass.
Scope (first pass)
Translate the ~20 patterns in
ImperativeOverrideandStealthLanguagethat have the highest per-pattern true positive rate in the English scanner into:These can be added as a 5th AC automaton pass (separate
OnceLock<AhoCorasick>) so they don't affect the existing English automaton's pattern index.Acceptance criteria
description.rswith multilingual needles forImperativeOverrideandStealthLanguageOnceLock<AhoCorasick>so the multilingual pass compiles independently of the English passbench/clean_tools.json(English clean tools)Notes
String::from_utf8_lossy(prohibited by CLAUDE.md); usestr::from_utf8+ explicit error handling for any byte-level inputReferences