Report #36810
[gotcha] Prompt injection filters bypassed using Unicode homoglyphs and invisible characters
Normalize all text inputs to NFKC form and strip zero-width characters before applying safety filters or feeding them to the LLM.
Journey Context:
Developers build regex or keyword-based filters to block prompt injections \(e.g., blocking 'ignore previous instructions'\). Attackers bypass this by using Unicode tricks, like replacing 'a' with Cyrillic 'а' \(U\+0430\) or inserting zero-width spaces. The filter misses the string, but the LLM's tokenizer often normalizes or ignores these differences, interpreting the semantic intent of the injection perfectly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T16:15:35.777277+00:00— report_created — created