Mythos made headlines with old bugs in OpenBSD, FreeBSD and FFmpeg.
Mozilla’s AI-assisted hardening work started in February 2026, and Firefox v150 shipped 271 Mythos fixes on April 21. That’s roughly two months of work of over 100 developers.
In October 10th, Anthropic’s OSS Scanner was anounced, allowing opensource projects to run their vulnerability scanner and get privately submitted reports.
It’s up to the maintainer to review, fix, test and publish them, i’m considering that approach kind of a good agreement, and a helpful way bring this powerful tool for free to opensource software.
Right after seeing the anouncement I fired codex and did the laziest thing I could do: prompt to fill the Anthropic form for me and create a PR into their oss-scanner repo to make radare2 into their aproval review process.
Two weeks later, at 1am I got a mail with 372 perfectly-written and well structured reports arrived by mail, with reproducers, ASan crash logs, reproduction steps, CWE details and Markdown explanations. I could test every single report and spot no false positives in that batch.
I got already early access to OpenAI Daybreak, and fixed all the bugs early this year, so Mythos really did find way more!
After years of active vulnerability research and good coding practice over a codebase mainly maintained by me of over 1M LOCs, using static code analysis and dynamic instrumentation, fuzzing with valgrind and ASan, I was impressed for the amount and quality of findings.
The security guideliness of the project specify to publicly disclose and fix any known vulnerability in less than 24h.
That’s a challenge, mainly considering radare2 is maintained by a single person as a hobby project
I think the prompt I built with GPT6.1 helped a lot Mythos to go find some really niche points, but their private harness deserves a lot of credit: how it builds r2 with AddressSanitizer, runs it, cooks reproducers and verifies the findings.
I needed a plan and clearly better tooling too.
So I notified NowSecure, the company I work for, to allocate a couple of weeks for me to focus on fixing them, and in a matter of 4 days i fixed about 200 of those. Thanks to Opus 5.5 and DeepseekFlash.

Quality of the patches
Anthropic included proposed patches with the reports. The bugs were real, but the patches often needed reworking:
- They fixed the symptom instead of the root cause.
- They missed design decisions that mattered to the fix.
- They left similar bugs in nearby code.
A reproducer proves that something is wrong. Choosing the right fix still requires understanding how the code is supposed to work.
Types of vulnerabilities
The reports covered out-of-bounds reads and writes, format string bugs, command and ANSI escape injection, sandbox escapes, path traversal, information leaks, logic and network trust issues, authentication bypasses, and denial of service, including allocation bombs. Well beyond the classic stack overflows from the 90s. I had to prioritize and start trimming the list.
Organizing the advisories
I created a directory inside my local radare2 source tree and documented its structure and working rules in README.md:
- Attic/ holds resolved reports.
- TODO.md tracks completed and pending work.
- status.sh shows how many findings are fixed and how many remain.
- Findings/ contains the full set of reports.
Each finding comes with its own files:
0$ find ANT-2026-1YX7HRIB/
ANT-2026-1YX7HRIB/
ANT-2026-1YX7HRIB/REPORT.md
ANT-2026-1YX7HRIB/patches
ANT-2026-1YX7HRIB/patches/1.patch
ANT-2026-1YX7HRIB/repro.d
ANT-2026-1YX7HRIB/repro.d/hostile.rapatch
ANT-2026-1YX7HRIB/repro
0$
The REPORT.md files start with a header like this:
0$ cat ANT-2026-1YX7HRIB/REPORT.md
==================================
ANT-2026-1YX7HRIB [high] CWE-693 authz
rapatch2 -s sandbox bypass: patch files can run r2 and shell commands
Location: libr/main/rapatch2.c:58 in rapatch_file()
Commit: 3f7b70a89ef13e367b63791c21782ad57edbca4b
==================================
With this header, it was easy for the any agent to create a script to generate a json and then use jq oneliners to query the data, but models and humans play better with markdown, so it built several tables referencing the IDs making it easy to track them as todo lists, write my anotations with vim, etc..
Now I think I could just built a tool on top of sqlite to handle all that and I would probably consumed much less tokens.
Which agents?
To be clear, i did a lot of manual reviewing and testing but 3 harnesses helped me a lot in the process: I used Claude with Opus 5.5, Codex with GPT-6.1 Astra, and PocketMai, my own coding agent, with DeepSeek Flash.
But prompt engineering is dead, right?
I tend to ask a lot of questions, flash models are great for this, in less than 5 seconds I can get insights and clarify TLDRs. I hate reading AI slop, and the way an issue is described can make it harder to understand than the bug itself.
I also use custom prompts that expand into longer instructions. After reviewing the code, I append my own questions and observations so the agent understands my concerns, priorities and the parts that need another look.
These are some of the prompts I use in pmai, also available through radare2-skills:
- $tldr: summarize the last message using short sentences, emojis and bullet points.
- $qa: make 10 niche short questions and research and respond them with one yes/no emoji
- $review: review changes for correctness, including issues beyond security and memory safety.
- $logic: look for logic bugs.
- $pattern: extract a bug pattern from the patch and reproducer, then search a specific area of the code for similar problems.
Loops
Running the harness, on separate worktrees and spawning subagents once is not usually enough.
Those prompts can be ran into an endless loop: investigate a finding, fix it, review the fix and search for the same pattern elsewhere. Following up on one Anthropic report could uncover another four bugs.
I manually checked every new finding. The original 372 reports grew into roughly 1,500 findings, including duplicates and issues that would need broader redesigns. That is a lot to deal with, but it also gives me a much clearer picture of where the code needs work and which changes are worth making next.
Reporting
At this volume, the advisory work becomes a project of its own. For every case, I need to review the report, reproduce the bug, assess its impact, identify the commits that introduced it, check whether the fix covers related cases and write it all up.
I couldn’t manage that without better tooling, so I wrote gsadv: a TUI for registering security advisories, requesting CVEs and analyzing reports with different agent harnesses.
This tool clearly needs it’s own post!
Moving r2 forward
AI is bringing more contributors to r2, along with new and better ways to review their contributions. It helps us find more bugs, explore alternatives and make better design decisions based on code we can actually test.
Maybe i’m too old to just blindly merge every commit at after the first prompt, or to automate without a human in the loop, but certainly it clearly makes a difference, moving the heavy load of software development to another level, helping me to learn new skills and focus on what matters rather than spending days manually testing the performance implications of 5 different options i had in mind.
That speeds up the whole process, from an idea or bug report to, testing, benchmarking, redesigning and reviewing every change. There is still plenty of work to do, but these tools help us keep r2 up to date and push it toward the goal: being the best software for agentic reverse engineering.