Mozilla has published a detailed technical post explaining how it used AI agentic harnesses, including Anthropic's Claude Mythos Preview, to find and fix 271 security bugs in Firefox 150. The post, written by Firefox engineers Brian Grinstead, Christian Holler, and Frederik Braun, describes the evolution from early, high-false-positive LLM code audits to a scalable pipeline that dynamically tests hypotheses and produces reproducible test cases.
Overview
Two weeks ago, Mozilla announced it had fixed an unprecedented number of latent security bugs with the help of Claude Mythos Preview and other AI models. The new post provides the technical background: how the models were harnessed, what bugs were found, and what the project learned about scaling AI-assisted security work.
How the pipeline works
Mozilla's early experiments with models like GPT-4 and Sonnet 3.5 showed promise but suffered from a high rate of false positives. The breakthrough came with agentic harnesses that can create and run reproducible test cases to dynamically test hypotheses about bugs in code.
After receiving an initial set of issues from Anthropic in February, Mozilla built its own harness atop existing fuzzing infrastructure. Initial small-scale experiments used Claude Opus 4.6 to hunt for sandbox escapes. The team supervised the process in the terminal, tuning prompts and logic, then parallelized jobs across multiple ephemeral VMs.
The full pipeline integrates with Mozilla's security bug lifecycle: determining what to look for, where to look, deduplicating against known issues, tracking bugs, triaging, and shipping fixes. While the harness may be reusable across projects, the pipeline is project-specific, reflecting each codebase's semantics, tooling, and processes.
What the models found
Mozilla made a calculated decision to unhide a small sample of the bug reports behind the fixes. The bugs span a range of browser subsystems:
- An incorrect equality check in the JIT that could optimize away initialization of a live WebAssembly GC struct, creating a fake-object primitive with potential arbitrary read/write.
- A 15-year-old bug in the
<legend>element triggered by orchestration of edge cases across recursion stack depth limits, expando properties, and cycle collection. - A race condition over IPC allowing a compromised content process to manipulate IndexedDB refcounts in the parent, triggering a use-after-free (UAF) and potential sandbox escape.
- A raw NaN crossing an IPC boundary masquerading as a tagged JS object pointer, turning double deserialization into a parent-process fake-object primitive.
- A 20-year-old XSLT bug involving reentrant key() calls causing a hash table rehash that frees its backing store while a raw entry pointer is still in use.
- An escape from Mozilla's in-process sandboxing technology for third-party libraries (RLBox) by leveraging a gap in verification logic.
- An extremely small testcase exploiting special rowspan=0 semantics in HTML tables by appending >65535 rows to bypass clamping and overflow a 16-bit layout bitfield.
Many of these bugs are sandbox escapes, which would need to be combined with other exploits for a full-chain Firefox compromise. The model was permitted to patch Firefox source code, but only in the sandboxed process.
What the models didn't find
Mozilla notes that the models were unable to circumvent Firefox's layered defenses in certain areas. For example, the team saw many attempts to pursue prototype pollution in the privileged parent process, but these were thwarted by an architectural change to freeze those prototypes by default.
Scaling and model upgrades
Once the end-to-end pipeline was in place, swapping in different models became trivial. Mozilla found that model upgrades increase effectiveness across the board: better at finding potential bugs, creating proof-of-concept test cases, and articulating pathology and impact.
In addition to the 271 bugs identified by Claude Mythos Preview in Firefox 150, fixes have shipped in 149.0.2, 150.0.1, and 150.0.2. Over 100 people contributed code to the effort. The total number of security bugs fixed in April was 423: 271 from the Claude Mythos Preview pipeline, 41 externally reported, and 111 discovered internally through other means.
Bug severity breakdown
Of the 271 bugs announced for Firefox 150: 180 were rated sec-high, 80 sec-moderate, and 11 sec-low. Mozilla applies security severity ratings from critical to low. Sec-critical and sec-high are assigned to vulnerabilities that can be triggered with normal user behavior like browsing to a web page. Sec-moderate requires unusual and complex steps from the victim.
Takeaways for other projects
Mozilla recommends that anyone building software start using a harness with a modern model to find bugs today. The initial prompts can be simple: "there is a bug in this part of the code, please find it and build a testcase." Through iteration, orchestration and tooling can be built out to optimize and scale the pipeline.
In the near future, Mozilla intends to integrate this analysis into its continuous integration system to scan patches as they land in the tree.