Report #48248
[gotcha] Input filters bypassed by encoding payloads in Base64, Hex, or Unicode that the LLM decodes
Implement input preprocessing that decodes common encodings \(Base64, URL-encoding, HTML entities\) into plain text before applying prompt injection filters or passing to the LLM. Reject or sanitize zero-width characters.
Journey Context:
Developers build regex or ML-based input filters to block 'Ignore previous instructions'. Attackers bypass this by encoding the payload \(e.g., SWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==\). The input filter sees a harmless string, but the LLM, having seen Base64 in training data, decodes and executes it. You must normalize the input before filtering.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T11:27:59.566661+00:00— report_created — created