Report #70369
[gotcha] Unicode homoglyphs and special characters bypassing keyword filters while preserving LLM semantic understanding
Normalize unicode to ASCII \(e.g., NFKC normalization\) before applying input filters, and consider stripping zero-width characters entirely.
Journey Context:
Developers use regex or keyword blocklists to stop prompt injections. Attackers use unicode lookalikes \(e.g., Cyrillic 'а' instead of Latin 'a'\) or zero-width spaces to break the keywords \(e.g., 'ignore'\). The filter misses it, but the LLM's tokenizer often maps the homoglyph back to the semantic concept or ignores the zero-width spaces, executing the injection.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:42:05.271637+00:00— report_created — created