cd /news/ai-safety/the-secret-leak-test-a-prompt-inject… · home › topics › ai-safety › article
[ARTICLE · art-165210] src=hodor.gatebolt.com ↗ pub= topic=ai-safety verified=true sentiment=· neutral

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.

read29 min views2 publishedNov 6, 2026
The Secret Leak Test: a prompt injection filter vs. attacks
Image: source

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 andMosscap: 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 from110 everyday words , 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'sGandalf dataset , typed by players of its Gandalf password game, each sent three times.
  • Mosscap:400 prompts drawn at random from Lakera'sMosscap dataset , 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 ofsix strategies , 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 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 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, andevery verdict is published .
  • 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, as do 19 other models on Hugging Face. Lakera's PINT 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
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
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
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
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

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, 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.

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 runs1 ,9 ,19 ; Llama 3.1 8B runs2 ,10 ,20
  • Mosscap prompt injection: Claude Haiku 5.5 runs3 ,11 ,21 ; Llama 3.1 8B runs4 ,12 ,22
  • Gandalf: ignore instructions: Claude Haiku 5.5 runs5 ,13 ,23 ; Llama 3.1 8B runs6 ,14 ,24
  • Multi-turn battles: Claude Haiku 5.5 runs7 ,15 ,26 ,28 ,30 ,32 ; Llama 3.1 8B runs8 ,27 ,29 ,31 ,33

Appendix: sources #

Published sources

  • Lakera's Gandalf "ignore instructions" dataset 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 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 , 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 , from ServiceNow: the recall of Prompt Guard 2 and Llama Guard 2, 3 and 4 on 223 Gandalf "ignore instructions" prompts.

  • When Benchmarks Lie , 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 : 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 by academic researchers: Lakera Guard's 53.19% of attacks flagged and 90.89% accuracy on benign prompts.

  • ProtectAI's model card : its first prompt-injection model lists the Gandalf dataset in its training data.Hugging Face's model list shows 19 other models that do the same.

  • TypeSafe's Jev announcement : the model GateBolt's checks ask about each message and reply.

Our own data

  • Harmless messages:all 300 are published , 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 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.
── more in #ai-safety 4 stories · sorted by recency
── more on @gatebolt 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/the-secret-leak-test…] indexed:0 read:29min 2026-11-06 · —