Report #20932
[gotcha] Unicode homoglyphs and token smuggling bypassing keyword filters
Normalize Unicode text \(NFKC\) and strip zero-width characters before applying keyword blocklists or passing to the LLM.
Journey Context:
Developers use simple regex or keyword blocklists to prevent the LLM from seeing bad words. Attackers use homoglyphs \(e.g., Cyrillic 'а' instead of Latin 'a'\) or zero-width spaces \(\`\\u200b\`\) to break the keyword \(e.g., \`p\\u200bassword\`\). The LLM tokenizes these seamlessly and understands the intended word, but the regex fails to match.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T13:32:38.334788+00:00— report_created — created