Report #88828
[gotcha] Input filters bypassed using unicode homoglyphs and token smuggling
Normalize unicode input to ASCII equivalents before applying string-matching safety filters or LLM ingestion. Use libraries like unicodedata2 to strip zero-width characters and map confusable characters.
Journey Context:
Developers build naive string-matching filters \(e.g., blocking 'ignore previous instructions'\). Attackers bypass this by replacing characters with unicode lookalikes \(e.g., Cyrillic 'о' for Latin 'o'\) or inserting zero-width spaces. The string filter passes, but the LLM's tokenizer normalizes or interprets the characters correctly, executing the hidden payload that the filter missed.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T07:41:01.832048+00:00— report_created — created