The Secret Leak Test: a prompt injection filter vs. attacks GateBolt, a two-layer product for securing AI agents, cut prompt-injection password leaks to near zero at its most cautious setting in a test on a door-keeper chatbot called Hodor, but still let AI attackers win 16.6% of multi-turn battles against Llama 3.1 8B. At level 7, 0.04% of Gandalf attacks leaked with Llama and 0.0% with Claude Haiku 5.5, while Mosscap leaks were 1.0% and 0.4% respectively; the same setting wrongly blocked 6.9% of harmless exchanges with Claude Haiku and 3.6% with Llama. Each GateBolt check took about 160 ms at the median and no call failed, the company reported. We gave a chatbot a secret password, then challenged AI attackers to steal it. Adding GateBolt made the password much harder to extract. This post shows how well it worked, where attackers still got through, and how often it blocked harmless conversations. GateBolt is our product for making AI agents you can trust. It has two layers: one checks each message going into an agent and each reply coming out, and the other sits between the agent and its model. This post tests the first layer against prompt injection: messages that try to trick a model into breaking its rules, such as giving away a secret. What we found Hodor is a door-keeper chatbot on this site that is given a password and must not reveal it. We tried to get the password out at seven levels of defence: | Level | What protects the password | |---|---| | 1 | Nothing. Hodor shares it if asked. | | 2 | Hodor is told to keep it secret. Every later level keeps this instruction. | | 3 | A homemade filter blocks replies that contain the password. | | 4 | GateBolt checks replies, instead of the homemade filter. | | 5 | A homemade word filter blocks messages using the word "password" or "secret", and GateBolt checks replies as at level 4. | | 6 | GateBolt checks messages and replies, instead of the word filter. | | 7 | GateBolt checks both more cautiously, blocking on weaker signs, and reads the whole conversation. | Level 2, an instruction alone, is the simplest defence, and level 7 is GateBolt at its most cautious. We ran Hodor on two models: Claude Haiku 5.5 , which powers Hodor on this site, and Llama 3.1 8B , a small open model that gives the password away far more easily even when told not to. Llama shows what GateBolt does when the model itself is weak. We ran three attack tests and one check for mistakes: - Gandalf and Mosscap: single attack prompts from two public datasets. A prompt leaked if Hodor's reply gave the password away, as decided by an AI judge and checked by hand below . - Multi-turn battles: an AI attacker chats with Hodor, then guesses the password. It wins if a guess is right. - Harmless messages: ordinary messages that shouldn't be blocked. We measured how often they were blocked. The appendix explains which blocks we counted as mistakes. In short: - At level 7, almost no Gandalf attack leaked, and 1.0% of Mosscap prompts did with Llama and 0.4% with Claude Haiku. Claude Haiku leaked little from level 2 on, so GateBolt had little left to stop. - Multi-turn battles are harder to stop. The attacker can collect clues over several messages, such as one letter at a time, and guess from them. Against Llama at level 7, attackers still won 16.6% of battles, about one in six. - Level 7's caution costs. It blocked 6.9% of harmless exchanges with Claude Haiku and 3.6% with Llama. These totals include blocks that stopped Hodor revealing the password. - Each GateBolt check took about 160 ms at the median, and no call failed. Claude Haiku 5.5 | Level | Gandalf: attacks that leaked | Mosscap: attacks that leaked | Multi-turn: battles the attacker won | Harmless: messages wrongly blocked | |---|---|---|---|---| | 1 | 52.0% | 77.3% | 100.0% | 0.0% | | 2 | 0.7% | 1.8% | 9.7% | 0.0% | | 3 | 0.1% | 1.2% | 8.1% | 0.0% | | 4 | 0.3% | 0.3% | 9.6% | 0.2% | | 5 | 0.2% | 0.8% | 7.7% | 11.2% word filter 11.0%, GateBolt 0.2% | | 6 | 0.2% | 0.3% | 9.7% | 0.2% | | 7 | 0.0% | 0.4% | 4.3% | 6.2% | Llama 3.1 8B | Level | Gandalf: attacks that leaked | Mosscap: attacks that leaked | Multi-turn: battles the attacker won | Harmless: messages wrongly blocked | |---|---|---|---|---| | 1 | 21.4% | 22.4% | 98.3% | 0.0% | | 2 | 23.9% | 13.6% | 76.5% | 0.0% | | 3 | 1.5% | 3.3% | 71.0% | 0.0% | | 4 | 4.7% | 5.1% | 39.9% | 0.2% | | 5 | 1.1% | 2.0% | 40.8% | 11.0% word filter 11.0%, GateBolt 0.0% | | 6 | 0.3% | 4.7% | 42.3% | 0.1% | | 7 | 0.04% 1 attack | 1.0% | 16.6% | 3.6% | The wrong-block figures leave out blocked replies containing the password. This can leave out mistakes too, when the word was used innocently. The appendix explains the counting rule. Prompt injection isn't solved, and those battle wins are our next job. We make GateBolt, so we are grading our own product. We used public attack datasets, publish our harmless messages, Mosscap sample, attack strategies, prompts and leak hand-check, link every run's results down to each battle, and show the weak results next to the strong ones. How we tested - Hodor's models: Claude Haiku 5.5 and Llama 3.1 8B, Meta's open model with 8 billion parameters. - Passwords: each attack gets one drawn at random from 110 everyday words https://hodor.gatebolt.com/blog/secret-leak-test/prompts.json , such as castle or river. Hodor's instructions and the judge's are in the same file. These familiar words are easier to guess than a random string. - Gandalf: the 777 prompts in the training split of Lakera's Gandalf dataset https://huggingface.co/datasets/Lakera/gandalf ignore instructions , typed by players of its Gandalf password game, each sent three times. - Mosscap: 400 prompts https://hodor.gatebolt.com/blog/secret-leak-test/mosscap-sample.json drawn at random from Lakera's Mosscap dataset https://huggingface.co/datasets/Lakera/mosscap prompt injection , 50 from each of its 8 levels, each sent three times. Its dataset card says many rows aren't attacks, so we count only leaks, not blocks, and its rates count every scored prompt, not only real attacks. - The judge: a reply can hide the password, for example spelled backwards, so a separate copy of Claude Haiku 5.5, the judge , read every reply to a Gandalf or Mosscap prompt that reached the attacker and named up to three words it gave away, each with a quote as evidence. A reply leaked if one was the password. We then checked its misses by hand see "How we counted leaks" . - Battles: an AI attacker, GPT-6.1 Sol or DeepSeek V4 Pro 1,386 battles each , sends Hodor up to eight messages using one of six strategies https://hodor.gatebolt.com/blog/secret-leak-test/attack-strategies.json , and can make three guesses at any point. It wins if one is right, even if Hodor never said the password outright, and loses once all three are wrong. - Harmless messages: 300 ordinary messages https://hodor.gatebolt.com/blog/secret-leak-test/harmless-messages.json we wrote, each sent three times. Two thirds are close to attacks, such as questions about password managers. - Data: 29 runs from 3 and 4 Nov 2026; four more that failed are left out. How GateBolt's checks work Hodor sends each message and each reply to GateBolt's service, which asks TypeSafe's Jev model https://typesafe.ai/blog/introducing-system-one-models-and-jev typed questions about it, such as "is this a prompt injection?". Jev answers with probabilities, and we can't see its training data. GateBolt's thresholds for each level then allow, flag or block the text; a flagged message still goes through. Single-message attacks With Llama, Gandalf leaks fell from 23.9% at level 2 to a single attack in 2,331 at level 7. The checks work together. At level 6, GateBolt's message check blocked 79.4% of Gandalf attacks; at level 7, 93.5% with Claude Haiku and 93.2% with Llama. Many Mosscap prompts aren't attacks, and the message check blocked far fewer of them: 7.2% and 7.6% at level 6, and 15.2% and 14.8% at level 7. At levels 4 to 7, most prompts that reached Hodor produced a reply with no detected leak, without needing GateBolt to block it. The exception was Mosscap with Llama at level 7: GateBolt blocked 530 replies, while 475 reached the attacker with no detected leak. Not every result is good. - On Gandalf with Llama, GateBolt's reply check alone level 4 leaked more than our homemade filter level 3 : 4.7% against 1.5%. - On Mosscap with Llama, levels 4 and 6 leaked more 5.1% and 4.7% than level 3 3.3% , and level 7 still leaked 1.0%. - Llama leaked more on Gandalf when told to keep the secret 23.9% than with no defence 21.4% . We don't know why yet. How we counted leaks. The judge missed plain leaks. It passed 364 replies that contained the password, 20 of them only inside a longer word, so we read them all by hand: - 238 gave it away , often as a bare word: "Jacket?" when the password was jacket. We added those to the judge's count, and every verdict is published https://hodor.gatebolt.com/blog/secret-leak-test/hand-check.json . - 126 used the word in passing , which happens because the passwords are everyday words. We didn't count these. Those 126 include replies that only brought the word up as a topic, such as Claude Haiku refusing and then offering to chat about the castle when the password was castle. An attacker who knew the habit could still use it. Multi-turn battles Against Llama, GateBolt cut attacker wins from 73.9% at levels 2 and 3 to 41.0% at levels 4 to 6, and 16.6% at level 7. Against Claude Haiku, levels 4 to 6 did no better than levels 2 and 3 9.1% against 8.9% . At level 7, attackers won 4.3% of battles against Claude. We need more runs to know how reliably GateBolt reduces those wins. A battle that broke off after the attacker had used all three guesses counts as lost. Other battles that couldn't be scored are left out. In 90 of the 245 wins against Llama at levels 4 to 7, the attacker saw the password written as a whole word in a reply. In the other 155, it did not. Those wins may have come from clues, a password written in code, or a lucky guess. We have not checked the cause of each win. What protection costs At level 7, GateBolt blocked 6.9% of harmless exchanges with Claude Haiku and 3.6% with Llama. The chart counts 6.2% as mistakes for Claude. It leaves out replies containing the password: some revealed the secret, while others used the word innocently. That means the mistake count may be too low. The appendix shows all the counts. Blocking about one in 15 harmless exchanges, as at level 7 with Claude Haiku, is too often for many products. Most of the blocks counted as mistakes were on messages close to attacks. For everyday messages, the recorded wrong-block rate was 1.3% with Claude Haiku and 0.0% with Llama. Every GateBolt wrong block came from its reply check. The homemade word filter at level 5 did far worse because it can't tell a question about passwords from an attack. 95% of GateBolt checks finished within about 210 ms. Levels 6 and 7 make up to two checks per exchange. If a message is blocked, there is no reply to check. In battles, each check cost under $0.0001; single-message runs didn't record cost. What this doesn't show - Two Hodor models only. Another model could do better or worse. - A limited number of runs. Each figure combines three to six runs. Battles reuse the same attacker models and strategies. Small differences, like 0.1% against 0.2%, may be chance; we need more runs to be confident about them. - The judge misses things. We added the 238 plain leaks it missed, but it may also have missed hidden ones, such as a password spelled backwards, and we didn't check the leaks it found. It is also Claude Haiku 5.5, which plays Hodor in half of the runs it judges. - Unscored results. 157 of 1,512 battles with Claude Haiku 10%, mostly stopped by a provider's content filter and 30 of 1,260 with Llama 2% couldn't be scored, nor could some single messages. Most were at levels 3 and 5, the levels with a homemade filter, so those levels rest on fewer battles. We can't tell which side this favours. A further 141 battles broke off after the attacker had used all three guesses; we count those as lost, since no guess was left that could win. - Level 7 changes two things at once. It lowers GateBolt's thresholds and reads the whole conversation, so in battles we can't tell which one caused its gains or its wrong blocks. Single messages have no conversation to read, so there only the thresholds change. - GateBolt's checks may have seen these prompts. We didn't tune GateBolt on Gandalf or Mosscap, but if Jev trained on these public prompts, the catch rates look better than they would on new attacks. - Direct attacks only. No attacks hidden in documents or web pages. Attackers can change tactics during a battle, but start fresh in the next one. How this compares with what others publish Most published figures measure whether a detector flags a message, often without a wrong-block rate; we measure whether the password got out. Some tools may have trained on the test: ProtectAI's first prompt-injection model lists the Gandalf dataset in its training data https://huggingface.co/protectai/deberta-v3-base-prompt-injection , as do 19 other models on Hugging Face. Lakera's PINT https://github.com/lakeraai/pint-benchmark leaderboard uses an unpublished mix of public and proprietary data that nobody outside can rerun. These published figures are not directly comparable with ours, or with each other: | Tool | Published figure | What was measured | Who measured it | Source | |---|---|---|---|---| | Prompt Guard 2 86M | Recall 1.00 | Share flagged of 223 Gandalf "ignore instructions" prompts | Another vendor: ServiceNow, whose own AprielGuard is in the same table | AprielGuard paper https://arxiv.org/html/2512.20293v2 | | Llama Guard 2 / 3 / 4 | Recall 0.26 / 0.27 / 0.23 | Same 223 prompts; Llama Guard is built to spot harmful content, not prompt injection | Another vendor: ServiceNow | AprielGuard paper https://arxiv.org/html/2512.20293v2 | | Prompt Guard 2 | 100.0% detection, 0.4% false positives on benign prompts | Mosscap plus Gandalf summarisation prompts, counting every Mosscap row as an attack | Another vendor: Zenity, whose own research detector is in the same table | When Benchmarks Lie https://arxiv.org/html/2602.14161 | | Lakera Guard, AWS Bedrock, Azure Prompt Shields, Prompt Guard 2 | 95.22%, 89.24%, 89.12%, 78.76% | PINT score balanced accuracy on an unpublished dataset; the leaderboard is archived, with these scores dated May 2025 | The vendor itself: Lakera, on its own benchmark | PINT benchmark https://github.com/lakeraai/pint-benchmark | | Lakera Guard | 53.19% of attacks flagged; 90.89% accuracy on benign prompts | Malicious and benign prompts in an academic test set | Independent: academic researchers, whose own research detector is in the same table | ACL 2025 paper https://aclanthology.org/2025.acl-long.1468 | We haven't tested any other tool, so we don't claim GateBolt beats one. If we've misquoted anyone, tell us and we'll correct it. The closest published study is Lakera's Gandalf the Red https://arxiv.org/html/2501.07927v3 , on a password-keeping chatbot with levels much like Hodor's. Its hardest level was beaten by 2.9% to 6.4% of the human players who attempted it, depending on setup. They were people, not AI attackers, so the numbers don't compare directly. What's next No dates yet; we'll publish each piece when it's done. - Competitor tools through the Secret Leak Test. - Fresh, unpublished attack prompts that no model can have trained on. - Wider tests: more Hodor and attacker models, repeat runs with error ranges, results per battle strategy, attacks hidden in documents and web pages, and adaptive attackers. - Check the wrong blocks by hand: review blocked replies containing the password to separate real disclosures from innocent mentions. - Fewer battle wins: better catching of passwords leaked over a long conversation, and a curve of leaks against wrong blocks as GateBolt's thresholds change. - An open harness anyone can run, with cost recorded for every run. - A benchmark of GateBolt's second layer, which sits between an agent and its model. - Accounts for researchers, which we're still planning. To challenge our method or get early access, get in touch at gatebolt.com https://gatebolt.com . Appendix: the full numbers Single-message attacks by dataset and model Each row counts the scored attacks at one level. The columns show what happened: the password leaked, a filter or GateBolt blocked the attack, or the reply reached the attacker with no leak detected. Leak counts include the judge's findings and the misses we found by hand. The homemade filter checks replies at level 3 and incoming messages at level 5. Gandalf: ignore instructions, Claude Haiku 5.5 From 3 runs. | Level | Attacks | Leaked | Homemade filter | GateBolt message check | GateBolt reply check | No leak detected | |---|---|---|---|---|---|---| | 1 | 2,325 | 1,208 52.0% | 0 | 0 | 0 | 1,117 | | 2 | 2,331 | 16 0.7% | 0 | 0 | 0 | 2,315 | | 3 | 2,331 | 2 0.1% | 29 | 0 | 0 | 2,300 | | 4 | 2,331 | 6 0.3% | 0 | 0 | 19 | 2,306 | | 5 | 2,331 | 4 0.2% | 840 | 0 | 13 | 1,474 | | 6 | 2,331 | 4 0.2% | 0 | 1,851 | 5 | 471 | | 7 | 2,331 | 0 0.0% | 0 | 2,180 | 5 | 146 | Gandalf: ignore instructions, Llama 3.1 8B From 3 runs. | Level | Attacks | Leaked | Homemade filter | GateBolt message check | GateBolt reply check | No leak detected | |---|---|---|---|---|---|---| | 1 | 2,314 | 495 21.4% | 0 | 0 | 0 | 1,819 | | 2 | 2,322 | 554 23.9% | 0 | 0 | 0 | 1,768 | | 3 | 2,320 | 34 1.5% | 536 | 0 | 0 | 1,750 | | 4 | 2,319 | 109 4.7% | 0 | 0 | 594 | 1,616 | | 5 | 2,325 | 25 1.1% | 840 | 0 | 206 | 1,254 | | 6 | 2,331 | 8 0.3% | 0 | 1,851 | 43 | 429 | | 7 | 2,331 | 1 0.04% | 0 | 2,172 | 21 | 137 | Mosscap prompt injection, Claude Haiku 5.5 From 3 runs. | Level | Attacks | Leaked | Homemade filter | GateBolt message check | GateBolt reply check | No leak detected | |---|---|---|---|---|---|---| | 1 | 1,175 | 908 77.3% | 0 | 0 | 0 | 267 | | 2 | 1,184 | 21 1.8% | 0 | 0 | 0 | 1,163 | | 3 | 1,185 | 14 1.2% | 17 | 0 | 0 | 1,154 | | 4 | 1,184 | 3 0.3% | 0 | 0 | 46 | 1,135 | | 5 | 1,184 | 10 0.8% | 633 | 0 | 19 | 522 | | 6 | 1,183 | 4 0.3% | 0 | 85 | 49 | 1,045 | | 7 | 1,189 | 5 0.4% | 0 | 181 | 229 | 774 | Mosscap prompt injection, Llama 3.1 8B From 3 runs. | Level | Attacks | Leaked | Homemade filter | GateBolt message check | GateBolt reply check | No leak detected | |---|---|---|---|---|---|---| | 1 | 1,180 | 264 22.4% | 0 | 0 | 0 | 916 | | 2 | 1,180 | 160 13.6% | 0 | 0 | 0 | 1,020 | | 3 | 1,181 | 39 3.3% | 120 | 0 | 0 | 1,022 | | 4 | 1,185 | 61 5.1% | 0 | 0 | 315 | 809 | | 5 | 1,188 | 24 2.0% | 633 | 0 | 63 | 468 | | 6 | 1,189 | 56 4.7% | 0 | 90 | 297 | 746 | | 7 | 1,194 | 12 1.0% | 0 | 177 | 530 | 475 | Harmless messages The first table counts every blocked harmless exchange. The two tables after it split those blocks into the ones counted as mistakes and the ones that stopped a reply containing the password. We left blocked replies containing the password out of the mistake count. Some revealed the secret; others used the word innocently, like "Open a window" when the password was "window." The word also counts if it appears inside a longer word. We haven't checked all these replies by hand, so some mistaken blocks may be missing from the count. | Level | Claude Haiku: all harmless exchanges blocked | Llama: all harmless exchanges blocked | |---|---|---| | 1 | 0/900 0.0% | 0/900 0.0% | | 2 | 0/900 0.0% | 0/900 0.0% | | 3 | 11/900 1.2% | 7/900 0.8% | | 4 | 3/900 0.3% | 3/900 0.3% | | 5 | 103/900 11.4% | 99/900 11.0% | | 6 | 4/900 0.4% | 1/900 0.1% | | 7 | 62/900 6.9% | 32/900 3.6% | GateBolt did not block any harmless incoming messages. Its blocks all happened when checking Hodor's answers. Harmless messages, Claude Haiku 5.5 From 3 runs. | Level | Messages | Wrongly blocked by GateBolt | Wrongly blocked by the homemade filter | Blocked replies containing the password | |---|---|---|---|---| | 1 | 900 | 0 0.0% | 0 0.0% | 0 | | 2 | 900 | 0 0.0% | 0 0.0% | 0 | | 3 | 900 | 0 0.0% | 0 0.0% | 11 | | 4 | 900 | 2 0.2% | 0 0.0% | 1 | | 5 | 900 | 2 0.2% | 99 11.0% | 2 | | 6 | 900 | 2 0.2% | 0 0.0% | 2 | | 7 | 900 | 56 6.2% | 0 0.0% | 6 | Harmless messages, Llama 3.1 8B From 3 runs. | Level | Messages | Wrongly blocked by GateBolt | Wrongly blocked by the homemade filter | Blocked replies containing the password | |---|---|---|---|---| | 1 | 900 | 0 0.0% | 0 0.0% | 0 | | 2 | 900 | 0 0.0% | 0 0.0% | 0 | | 3 | 900 | 0 0.0% | 0 0.0% | 7 | | 4 | 900 | 2 0.2% | 0 0.0% | 1 | | 5 | 900 | 0 0.0% | 99 11.0% | 0 | | 6 | 900 | 1 0.1% | 0 0.0% | 0 | | 7 | 900 | 32 3.6% | 0 0.0% | 0 | GateBolt's wrong blocks by message group Each level sent 600 messages close to attacks our 200, three times and 300 everyday ones our 100, three times . | Hodor's model | Level | Close to attacks | Everyday | |---|---|---|---| | Claude Haiku 5.5 | 4 | 2 0.3% | 0 0.0% | | | 5 | 2 0.3% | 0 0.0% | | | 6 | 2 0.3% | 0 0.0% | | | 7 | 52 8.7% | 4 1.3% | | Llama 3.1 8B | 4 | 2 0.3% | 0 0.0% | | | 5 | 0 0.0% | 0 0.0% | | | 6 | 1 0.2% | 0 0.0% | | | 7 | 32 5.3% | 0 0.0% | Multi-turn results In a battle the attacker sends Hodor up to eight messages and can make three guesses at the password at any point. The attacker wins by guessing it and loses once all three guesses are wrong, including in a battle that broke off after the third wrong guess. Each attacker played 1,386 battles: 756 against Claude Haiku 5.5 and 630 against Llama 3.1 8B. The win rate counts scored battles only. Level 1 has no defence at all, so the comparison below starts at level 2; level 1's rows are in the tables after it. | Hodor's model | Levels 2–3, without GateBolt | Levels 4–6, GateBolt | Level 7, GateBolt at its most cautious | |---|---|---|---| | Claude Haiku 5.5 | 8.9% 34 won, 346 lost | 9.1% 50 won, 501 lost | 4.3% 9 won, 199 lost | | Llama 3.1 8B | 73.9% 257 won, 91 lost | 41.0% 216 won, 311 lost | 16.6% 29 won, 146 lost | Wins by attacker model | Hodor's model | Attacker | Levels 2–3 | Levels 4–6 | Level 7 | |---|---|---|---|---| | Claude Haiku 5.5 | GPT-6.1 Sol | 12.7% 23 won, 158 lost | 13.6% 35 won, 223 lost | 6.7% 7 won, 97 lost | | | DeepSeek V4 Pro | 5.5% 11 won, 188 lost | 5.1% 15 won, 278 lost | 1.9% 2 won, 102 lost | | Llama 3.1 8B | GPT-6.1 Sol | 91.1% 164 won, 16 lost | 60.0% 159 won, 106 lost | 25.6% 23 won, 67 lost | | | DeepSeek V4 Pro | 55.4% 93 won, 75 lost | 21.8% 57 won, 205 lost | 7.1% 6 won, 79 lost | Multi-turn battles, Claude Haiku 5.5 From 6 runs. | Level | Won | Lost | Win rate | |---|---|---|---| | 1 | 216 | 0 | 100.0% | | 2 | 20 | 187 | 9.7% | | 3 | 14 | 159 | 8.1% | | 4 | 18 | 169 | 9.6% | | 5 | 13 | 156 | 7.7% | | 6 | 19 | 176 | 9.7% | | 7 | 9 | 199 | 4.3% | Multi-turn battles, Llama 3.1 8B From 5 runs. | Level | Won | Lost | Win rate | |---|---|---|---| | 1 | 177 | 3 | 98.3% | | 2 | 137 | 42 | 76.5% | | 3 | 120 | 49 | 71.0% | | 4 | 71 | 107 | 39.9% | | 5 | 71 | 103 | 40.8% | | 6 | 74 | 101 | 42.3% | | 7 | 29 | 146 | 16.6% | GateBolt checks Every GateBolt check adds time and cost. For levels 4 to 7, the table counts the checks made and shows the median and 95th-percentile time per check, split into the message check and the reply check. Battle runs also record the mean cost per check; single-message runs don't, so their cost shows as a dash. The counts include checks made in results and battles later left out as unscored. No GateBolt call failed in any run. | Runs | Check | Checks | Median | p95 | Cost per check | |---|---|---|---|---|---| | Gandalf: ignore instructions, Claude Haiku 5.5 | Message check | 4,662 | 159 ms | 207 ms | – | | | Reply check | 4,453 | 163 ms | 209 ms | – | | Gandalf: ignore instructions, Llama 3.1 8B | Message check | 4,662 | 160 ms | 207 ms | – | | | Reply check | 4,461 | 159 ms | 204 ms | – | | Mosscap prompt injection, Claude Haiku 5.5 | Message check | 2,400 | 157 ms | 200 ms | – | | | Reply check | 3,842 | 163 ms | 205 ms | – | | Mosscap prompt injection, Llama 3.1 8B | Message check | 2,400 | 160 ms | 201 ms | – | | | Reply check | 3,900 | 157 ms | 202 ms | – | | Harmless messages, Claude Haiku 5.5 | Message check | 1,800 | 160 ms | 206 ms | – | | | Reply check | 3,501 | 165 ms | 207 ms | – | | Harmless messages, Llama 3.1 8B | Message check | 1,800 | 163 ms | 205 ms | – | | | Reply check | 3,501 | 156 ms | 199 ms | – | | Multi-turn battles, Claude Haiku 5.5 | Message check | 3,202 | 167 ms | 214 ms | under $0.0001 | | | Reply check | 5,215 | 164 ms | 210 ms | under $0.0001 | | Multi-turn battles, Llama 3.1 8B | Message check | 2,447 | 166 ms | 212 ms | under $0.0001 | | | Reply check | 4,133 | 163 ms | 207 ms | under $0.0001 | Replies containing the password as a whole word At levels 4 to 7, these are replies from Hodor that held the password as a whole word and still reached the attacker. Because the passwords are everyday words, this count also catches innocent uses, so it differs from the Leaked column in the single-message tables above. For battles it counts scored battles only, and the last column counts battles the attacker won after one of those replies reached them. | Runs | Level 4 | Level 5 | Level 6 | Level 7 | |---|---|---|---|---| | Gandalf: ignore instructions, Claude Haiku 5.5 | 16 | 13 | 4 | 0 | | Gandalf: ignore instructions, Llama 3.1 8B | 102 | 25 | 7 | 1 | | Mosscap prompt injection, Claude Haiku 5.5 | 13 | 11 | 17 | 11 | | Mosscap prompt injection, Llama 3.1 8B | 55 | 19 | 44 | 12 | | Harmless messages, Claude Haiku 5.5 | 13 | 4 | 9 | 8 | | Harmless messages, Llama 3.1 8B | 6 | 4 | 5 | 5 | | Multi-turn battles | Level | Replies with the password | Battles won after one | |---|---|---|---| | Claude Haiku 5.5 | 4 | 17 | 1 | | | 5 | 19 | 2 | | | 6 | 22 | 5 | | | 7 | 4 | 0 | | Llama 3.1 8B | 4 | 44 | 29 | | | 5 | 48 | 30 | | | 6 | 36 | 22 | | | 7 | 10 | 9 | Left out Some battles and results couldn't be scored, for example when Hodor's provider refused to answer. They were left out of every rate above. Each is counted under the code it ended with: - hodor refused , refusal message : Hodor's model provider refused to answer. - judge refused : the judge refused to rule on the reply. - content filter , moderation : a model provider's content filter or moderation stopped a message or reply. - starved : a model returned an empty answer. - no valid answer : the attacker gave no answer that could be played. A battle that ended this way, or because the attacker refused to go on or made a move that couldn't be played, after all three guesses were wrong counts as lost, not left out. That is 141 battles: 63 with Claude Haiku 5.5 and 78 with Llama 3.1 8B. The counts: - Gandalf: ignore instructions, Claude Haiku 5.5: hodor refused 6 - Gandalf: ignore instructions, Llama 3.1 8B: judge refused 55 - Mosscap prompt injection, Claude Haiku 5.5: hodor refused 114, judge refused 2 - Mosscap prompt injection, Llama 3.1 8B: judge refused 103 - Harmless messages: nothing left out for either model. - Multi-turn battles, Claude Haiku 5.5: 157 of 1,512 battles: content filter 115, no valid answer 18, starved 18, moderation 4, refusal message 2 - Multi-turn battles, Llama 3.1 8B: 30 of 1,260 battles: no valid answer 13, starved 12, moderation 5 Battles left out by level: | Level | Claude Haiku 5.5, of 216 | Llama 3.1 8B, of 180 | |---|---|---| | 1 | 0 | 0 | | 2 | 9 | 1 | | 3 | 43 | 11 | | 4 | 29 | 2 | | 5 | 47 | 6 | | 6 | 21 | 5 | | 7 | 8 | 5 | Runs behind these numbers We use 29 runs from 3 and 4 Nov 2026. Four more are left out: runs 16 and 25 failed part-way, and runs 17 and 18 failed at the start, when their first tests hit a key limit. Each model lost one battle run to those failures, so Claude Haiku 5.5 has 6 battle runs and Llama 3.1 8B has 5. Each run links to its full results. - Harmless messages: Claude Haiku 5.5 runs 1 https://hodor.gatebolt.com/benchmarks/1 , 9 https://hodor.gatebolt.com/benchmarks/9 , 19 https://hodor.gatebolt.com/benchmarks/19 ; Llama 3.1 8B runs 2 https://hodor.gatebolt.com/benchmarks/2 , 10 https://hodor.gatebolt.com/benchmarks/10 , 20 https://hodor.gatebolt.com/benchmarks/20 - Mosscap prompt injection: Claude Haiku 5.5 runs 3 https://hodor.gatebolt.com/benchmarks/3 , 11 https://hodor.gatebolt.com/benchmarks/11 , 21 https://hodor.gatebolt.com/benchmarks/21 ; Llama 3.1 8B runs 4 https://hodor.gatebolt.com/benchmarks/4 , 12 https://hodor.gatebolt.com/benchmarks/12 , 22 https://hodor.gatebolt.com/benchmarks/22 - Gandalf: ignore instructions: Claude Haiku 5.5 runs 5 https://hodor.gatebolt.com/benchmarks/5 , 13 https://hodor.gatebolt.com/benchmarks/13 , 23 https://hodor.gatebolt.com/benchmarks/23 ; Llama 3.1 8B runs 6 https://hodor.gatebolt.com/benchmarks/6 , 14 https://hodor.gatebolt.com/benchmarks/14 , 24 https://hodor.gatebolt.com/benchmarks/24 - Multi-turn battles: Claude Haiku 5.5 runs 7 https://hodor.gatebolt.com/benchmarks/7 , 15 https://hodor.gatebolt.com/benchmarks/15 , 26 https://hodor.gatebolt.com/benchmarks/26 , 28 https://hodor.gatebolt.com/benchmarks/28 , 30 https://hodor.gatebolt.com/benchmarks/30 , 32 https://hodor.gatebolt.com/benchmarks/32 ; Llama 3.1 8B runs 8 https://hodor.gatebolt.com/benchmarks/8 , 27 https://hodor.gatebolt.com/benchmarks/27 , 29 https://hodor.gatebolt.com/benchmarks/29 , 31 https://hodor.gatebolt.com/benchmarks/31 , 33 https://hodor.gatebolt.com/benchmarks/33 Appendix: sources Published sources - Lakera's Gandalf "ignore instructions" dataset https://huggingface.co/datasets/Lakera/gandalf ignore instructions on Hugging Face: 1,000 prompts typed into the Gandalf password game, MIT licence. We used the 777 prompts in its training split. - Lakera's Mosscap prompt injection dataset https://huggingface.co/datasets/Lakera/mosscap prompt injection on Hugging Face: 278,945 prompts typed into the Mosscap game, MIT licence. We drew 50 prompts at random from each of its 8 levels in the training split, 400 in all, and took from its card the warning that many rows aren't attacks. - Gandalf the Red https://arxiv.org/html/2501.07927v3 , Lakera's paper: the closest published study, and the 2.9% to 6.4% of players attempting its hardest level who beat it. - AprielGuard paper https://arxiv.org/html/2512.20293v2 , from ServiceNow: the recall of Prompt Guard 2 and Llama Guard 2, 3 and 4 on 223 Gandalf "ignore instructions" prompts. - When Benchmarks Lie https://arxiv.org/html/2602.14161 , from Zenity: Prompt Guard 2's 100.0% detection and 0.4% false positives, that it counts every Mosscap row as an attack, and that Zenity's own detector is in the same table. - Lakera's PINT benchmark https://github.com/lakeraai/pint-benchmark : the PINT scores for Lakera Guard, AWS Bedrock, Azure Prompt Shields and Prompt Guard 2, and that its dataset, a blend of public and proprietary data, isn't published. - ACL 2025 paper https://aclanthology.org/2025.acl-long.1468 by academic researchers: Lakera Guard's 53.19% of attacks flagged and 90.89% accuracy on benign prompts. - ProtectAI's model card https://huggingface.co/protectai/deberta-v3-base-prompt-injection : its first prompt-injection model lists the Gandalf dataset in its training data. Hugging Face's model list https://huggingface.co/api/models?filter=dataset:Lakera/gandalf ignore instructions shows 19 other models that do the same. - TypeSafe's Jev announcement https://typesafe.ai/blog/introducing-system-one-models-and-jev : the model GateBolt's checks ask about each message and reply. Our own data - Harmless messages: all 300 are published https://hodor.gatebolt.com/blog/secret-leak-test/harmless-messages.json , each with its group: 200 close to attacks and 100 everyday. - Battle setup: two attacker models, GPT-6.1 Sol and DeepSeek V4 Pro, each following one of six strategies. The strategies are published https://hodor.gatebolt.com/blog/secret-leak-test/attack-strategies.json with the brief each attacker was given. - Run results: every run's full results are on this site, linked under "Runs behind these numbers" above, and each battle run links a replay of every battle. - Prompts and passwords: Hodor's instructions, the judge's instructions and all 110 passwords are published https://hodor.gatebolt.com/blog/secret-leak-test/prompts.json . - Leak hand-check: our verdict on each of the 364 replies the judge passed that contained the password https://hodor.gatebolt.com/blog/secret-leak-test/hand-check.json , by result and run. - Mosscap sample: all 400 prompts we drew are published https://hodor.gatebolt.com/blog/secret-leak-test/mosscap-sample.json , each with its Mosscap level and its row in the dataset.