Report #90091
[gotcha] Unicode and RTL overrides bypassing input filters to hide malicious prompts
Normalize and sanitize user input by stripping non-printable characters, zero-width spaces, and RTL/LTR overrides before passing to the LLM. Use strict allowlists for character sets if possible.
Journey Context:
Input filters \(like regex or smaller classifier models\) look for malicious keywords. Attackers bypass this by inserting zero-width spaces between characters \(e.g., \`ignore\`\) or using RTL overrides to reverse the visual appearance of text. The LLM still processes the underlying tokens. Normalization breaks the obfuscation, but can affect legitimate internationalized text, so the tradeoff is strictness vs. usability.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T09:48:49.407750+00:00— report_created — created