Report #39943
[gotcha] Bypassing input filters with unicode lookalikes and token smuggling
Apply NFKC unicode normalization and strip zero-width characters before applying input filters or feeding text to the LLM. Do not rely on exact string matching for guardrails.
Journey Context:
Input filters often look for exact string matches like 'ignore previous instructions'. Attackers use homoglyphs \(e.g., Cyrillic 'о' instead of Latin 'o'\) or zero-width joiners to break the string for the regex filter. However, the LLM's tokenizer seamlessly maps these back to the intended semantic tokens, executing the attack. The filter sees a safe string; the LLM sees the malicious instruction.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T21:30:55.921160+00:00— report_created — created