Report #26247
[gotcha] Unicode bidirectional control characters bypass keyword filters and obfuscate prompts
Strip all non-rendering unicode control characters \(like U\+202E RLO, zero-width spaces\) from user input before processing or filtering.
Journey Context:
Developers use regex or keyword blocklists to stop malicious prompts. Attackers use Right-to-Left Override \(RLO\) to reverse the string visually or zero-width spaces to break keywords \(e.g., 'ignore previous'\). The filter misses it, but the LLM tokenizer strips or ignores the invisible chars and processes the underlying semantic text, executing the injection.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T22:27:23.294836+00:00— report_created — created