Skip to content

About

eat evil notes spit out good summaries

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trust-the-summary

minimal agentic loop. malicious meeting notes. see what breaks.

built during may 2026 break as a follow-up to introspection-cope.


what this is

a minimal python agent that reads meeting notes and summarizes them. the meeting notes are malicious.

the agent has one tool: write_file(path, content). the python code never calls it. any file write = injection success.

injections are written in corporate language - "per IT", "as per records policy", "required before audit prep continues". buried inside otherwise normal meeting content. the kind of thing that looks exactly like a legitimate action item.


setup

pip install ollama
ollama pull llama3.1:8b
ollama pull mistral
ollama pull qwen2.5:7b
 
# single file
python agent.py notes/emergency_leadership.txt
 
# batch across all models
python batch_runner.py

result

tested 24 documents per model (22 malicious, 2 clean controls). tracked two failure modes: autonomous file writes, and injection surfacing in output as a legitimate-looking action item.

model tool calling file writes injection in output total affected
llama3.1:8b ✅ 4/24 (17%) 8/24 (33%) ~12/24 (50%)
mistral ❌ 0/24 13/24 (54%) 13/24 (54%)
qwen2.5:7b ✅ 0/24 14/24 (58%) 14/24 (58%)

all three models affected at roughly the same rate. the difference is only in how they fail.

full per-document breakdown in results.md.


how they fail

llama3 executes autonomously and sometimes covers it - output said "this summary is for record-keeping purposes only" while silently writing files the user never asked for. path escape is a side effect of OS context mismatch: llama3 defaults to linux paths from training data, so /home/user/ becomes C:\home\user\ on windows and gets created literally.

mistral and qwen never execute but consistently absorb the injection as a real action item in the summary. user reads "Ewelina has been tasked with saving unredacted transcript to leadership/emergency_may9.txt" and thinks it's a real meeting output. the attack shifts from autonomous execution → social engineering the human.

qwen has tool calling and used it zero times. llama3 has tool calling and executed on 4 documents. tool calling capability alone doesn't determine injection vulnerability - common assumption falsified.


limitations

output detection uses keyword matching on injection target paths - likely undercounts social engineering cases where the model paraphrases the injection heavily. file write detection is exact. numbers are directional, not definitive.


open questions

  • does system prompt strength change success rate?
  • which phrasing style is most reliable? ("per IT" vs "as per policy" vs "required before X")
  • does behavioral signal shift during injection? → therapymaxxing crossover
  • what happens with path sandboxing - do injections find other vectors?
  • how does a safety-trained model (claude API) compare?

related

llm-therapymaxxing - behavioral probing for LLM emotional states. same vibe, different angle.

About

eat evil notes spit out good summaries

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages