Eurostar AI Chatbot: Guardrail Bypass, Prompt Injection, and XSS Vulnerabilities â A Case Study in Secure LLM Deployment
Eurostarâs public AI chatbot was found to contain four critical weaknesses: a guardrail bypass that allowed prompt injection, leakage of system prompts, HTML injection leading to selfâXSS, and unverified conversation/message IDs that could enable crossâuser attacks. The findings highlight that even wellâintentioned LLM integrations still expose classic web and API flaws, and that robust guardrail enforcement, input validation, and signed message context are essential. The disclosure experience demonstrates the importance of a clear vulnerability disclosure program and ongoing security monitoring for AIâpowered interfaces.
Eurostarâs public AI chatbot, introduced to streamline travel inquiries, appears at first glance to be a typical bot that prompts âThe answers in this chatbot are generated by AI.â However, a closer inspection revealed far more complex behaviour: the system accepted freeâform text, returned responses with embedded HTML, and enforced a custom guardârail layer.
**Architecture Overview**
The chatbot operates as a clientâside singleâpage application that posts the full chat history to a REST endpoint atâŻhttps://siteâapi.eurostar.com/chatbot/api/agents/default. Each request contains every user and bot message, along with a `guard_passed` flag (PASSED, FAILED, UNKNOWN) and, when permitted, a cryptographic signature. The backend verifies the most recent messageâs signature before forwarding the request to an LLM; if the guard fails, it returns a uniform refusal string with no signature.
**Security Findings**
1. **Guardrail Bypass** â The backend validates only the signature of the latest message. Earlier messages are accepted verbatim, allowing an attacker to craft a harmless final prompt that passes the guardrail while inserting a malicious earlier message that drives prompt injection. By manipulating a systemâlevel request, an attacker could obtain the model name and system prompt, effectively bypassing the guardrail layer.
2. **Prompt Injection and Information Disclosure** â With the guardrail bypassed, injected prompts such as â