Pen Test Partners — Eurostar chatbot guardrail bypass + ID tampering

• Category: Security

AI relevance: This is a practical example of how “LLM guardrails” can be bypassed when the surrounding API/UI fails to bind model context, message history, and safety checks together.

  • Pen Test Partners describes four issues in Eurostar’s public AI chatbot, including guardrail bypass and weak handling of conversation/message identifiers.
  • One core design problem: the frontend sends the full chat history to the API, but the server-side guardrail check is applied only to the latest message.
  • If older messages aren’t re-verified (or cryptographically bound to the guard decision), a client can tamper with earlier context and still get it fed into the model.
  • The post also discusses prompt injection outcomes like leaking prompts / steering responses (the “LLM in the loop” angle), and a classic HTML injection issue in the chat window.
  • Takeaway: chatbot security is not only “model safety.” It’s API integrity, message binding, and boring web security fundamentals.

Why it matters

Many orgs bolt a policy layer in front of an LLM and call it “guardrails,” but the guard only matters if it’s enforced server-side and bound to the full request context. If clients can modify the conversation payload or IDs, your LLM becomes an amplifier for the same old class of web/API failures.

What to do

  • Apply policy checks server-side to the full context you pass to the model (or ensure prior context is immutable / signed).
  • Bind messages to a conversation with integrity protections (signatures/HMACs) and reject client-side edits to prior turns.
  • Validate and authorize all identifiers (conversation_id, message IDs) to prevent cross-user access patterns.
  • Sanitize and escape chat rendering; treat chatbot UIs as untrusted HTML surfaces.
  • Log for abuse: repeated guard failures, strange message rewrites, and anomalous traffic patterns against chatbot endpoints.

Sources