Report #73526
[gotcha] LLM executes hidden payloads encoded in base64, unicode, or ROT13 that bypass text filters
Normalize and decode all user inputs before applying prompt injection filters or passing to the LLM. Strip zero-width characters, decode base64/ROT13 payloads, and normalize unicode to standard ASCII where possible. Do not rely on the LLM to ignore encoded text; it will decode and follow it.
Journey Context:
Developers deploy regex or string-matching filters on user input to block known bad patterns \(like 'ignore previous instructions'\). Attackers bypass this by encoding the payload \(e.g., base64\). The input filter sees benign text, but the LLM's tokenizer understands the encoding, decodes it internally, and executes the hidden instruction. You must decode and normalize \*before\* the filter and the LLM.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T06:00:29.928984+00:00— report_created — created