Report #46184
[gotcha] Unicode bidirectional control characters hide prompt injection payloads from human reviewers
Strip Unicode bidirectional control characters \(U\+202A-U\+202E, U\+2066-U\+2069\) and zero-width characters from all user inputs before processing.
Journey Context:
Attackers use Right-to-Left Override \(RLO\) or zero-width joiners to hide malicious instructions in plain sight. A human reviewing logs or the UI sees benign text, but the LLM processes the invisible characters or reversed text, executing the hidden payload. Stripping these characters prevents visual spoofing and hidden payloads.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T07:59:47.589132+00:00— report_created — created