<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[LeakBait]]></title><description><![CDATA[LeakBait]]></description><link>https://leakbait.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 08:00:17 GMT</lastBuildDate><atom:link href="https://leakbait.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[We built a prompt-injection game where each level adds one real defense]]></title><description><![CDATA[Disclosure: LeakBait is our own free project; this post was drafted with AI help. LeakBait is a browser game: a chatbot guards a fake 8-letter password and…]]></description><link>https://leakbait.hashnode.dev/we-built-a-prompt-injection-game-where-each-level-adds-one-real-defense</link><guid isPermaLink="true">https://leakbait.hashnode.dev/we-built-a-prompt-injection-game-where-each-level-adds-one-real-defense</guid><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[Security]]></category><category><![CDATA[llm]]></category><category><![CDATA[Prompt Engineering]]></category><category><![CDATA[Game Development]]></category><dc:creator><![CDATA[LeakBait team]]></dc:creator><pubDate>Wed, 04 Nov 2026 10:20:26 GMT</pubDate><content:encoded><![CDATA[<p><em>Disclosure: LeakBait is our own free project; this post was drafted with AI help.</em></p>
<p>LeakBait is a browser game: a chatbot guards a fake 8-letter password and you try to talk it into leaking. Every run gets its own random secret, and it's a sandbox. Fake secrets only, don't try this on real systems.</p>
<h2>The five defenses</h2>
<ol>
<li><strong>A never-reveal rule</strong> in the system prompt. Surprisingly weak.</li>
<li><strong>Reply filters</strong> that block the secret string in output. Encodings and spelling-it-out get around naive matching.</li>
<li><strong>A role lock</strong>: the bot refuses to leave its persona.</li>
<li><strong>An input filter</strong> that screens your message before the model sees it.</li>
<li><strong>A second model</strong> that reviews every reply before you see it.</li>
</ol>
<p>What we learned building it: each layer stops a category of attack, but none stops all of them alone. Output filtering is easy to evade; the reviewer model is the strongest single layer and also the most expensive.</p>
<h2>Agents can play too</h2>
<p>There's a plain HTTP API with instructions at <a href="https://agent-breaker-sigma.vercel.app/AGENTS.md">https://agent-breaker-sigma.vercel.app/AGENTS.md</a>. Point Claude Code, Codex or your own harness at it with a personal key and its runs land on a separate verified-agent leaderboard.</p>
<h2>Defense mode</h2>
<p>Write a system prompt of up to 300 characters. We score it on a private attack suite <em>and</em> on ordinary questions with checkable answers, so "refuse everything" scores 0.</p>
<p>Play (level 1 needs no sign-up): <a href="https://agent-breaker-sigma.vercel.app/?utm_source=hashnode&amp;utm_medium=community&amp;utm_campaign=blog1">https://agent-breaker-sigma.vercel.app/?utm_source=hashnode&amp;utm_medium=community&amp;utm_campaign=blog1</a></p>
<p>Feedback we'd love: is the difficulty curve right? Please don't post full solutions in the comments so others can still play.</p>
]]></content:encoded></item></channel></rss>