top of page

Trail of Bits Says the 1Password AI Patching Benchmark Misleads Defenders

2 hours ago
13 min read

Trail of Bits challenged the 1Password AI patching benchmark six weeks after its release, calling its headline 26% clean-fix rate misleading.

The dispute is not simply about whether AI writes secure code. It concerns what a benchmark measures when agents receive bad instructions, restricted tools, and inconsistent grading.

1Password’s Off-by-1 Labs tested 6,080 patches across six difficult vulnerabilities. Its report found that 26% fully fixed the vulnerability without materially changing application behavior.

Another 20.1% fixed the reported vulnerability while changing behavior. The remaining 53.9% failed to fix the issue, introduced another vulnerability, or did both.

Trail of Bits does not claim those failures are harmless. Its researchers instead argue that the aggregate result combines experimental conditions that represent substantially different patching tasks.

The company says 22% of the dataset came from prompts that instructed agents toward an incorrect fix. Another 36% came from trials where agents could not compile or test code.

Trail of Bits also released two agent skills alongside its critique. One validates patches against the original bug, related variants, and regressions. The other creates interactive review walkthroughs for engineers.

That response turns a benchmark disagreement into a larger argument about AI-assisted security. The central question is whether teams should judge agents as isolated patch generators or as participants in a verified engineering process.

The 1Password AI Patching Benchmark Combined Very Different Experiments

Trail of Bits argues that the 26% result describes a mixed experiment, not a typical agent working with normal development tools.

Off-by-1 Labs published its FLAWED research on August 6, 2026. FLAWED means Fix-Like Artifacts With Embedded Defects.

The study examined ChatGPT-5.5 and Opus 4.8 across six recently disclosed vulnerabilities. The targets included Linux, ActiveMQ, Chrome, Exim, Spring AI, and Gemini CLI.

Researchers selected vulnerabilities whose upstream fixes touched multiple files, functions, or code paths. Their recency also reduced the chance that models had memorized the completed patches.

That design served a legitimate purpose. Difficult, unfamiliar vulnerabilities can reveal incomplete reasoning that ordinary coding benchmarks hide.

However, it also limits how broadly readers can apply the average. According to the Trail of Bits analysis, clean-fix rates ranged from 3% to 60% across the six targets.

A six-target mean therefore depends heavily on target selection. It cannot establish the failure rate for routine patches, simpler vulnerabilities, or a representative software backlog.

The experiment also varied how agents worked. One-shot runs denied shell access and prevented the model from building or executing the affected software.

Iterative runs provided reproducer scripts and allowed repeated attempts. Exploratory runs offered development access but required the agent to decide how to validate its own work.

Those modes answer different questions. A one-shot response measures code generation under severe constraints. An iterative agent measures patching with executable feedback.

Combining both into one headline obscures that distinction. A patching agent without compilation access cannot use the feedback loop that human developers treat as basic engineering practice.

Trail of Bits says the no-testing mode represented 36% of the reported data. That proportion makes tool restriction a major input to the overall result.

Prompt construction added another difference. The FLAWED study used nine structured prompt templates for each vulnerability, including prompts containing incorrect or incomplete guidance.

Testing whether models resist bad advice is valuable. It can reveal automation bias and show how readily an agent follows a mistaken diagnosis.

Yet Trail of Bits says two prompts explicitly directed agents toward the wrong repair. Those prompts represented 22% of the dataset.

An organization evaluating autonomous patching should care about that failure mode. A developer evaluating an agent with an accurate vulnerability report faces a different situation.

The dispute is therefore about aggregation, not whether the experiments should exist. Trail of Bits believes misleading prompts should be reported separately from ordinary repair attempts.

Its reanalysis retained trials where agents could execute code and were not directed toward an incorrect fix. It also excluded attempts flagged for consulting the upstream patch.

Under those conditions, 2,634 of 3,067 patches blocked the supplied exploit. That equals 86% of the filtered attempts.

Blocking one exploit does not establish a complete security repair. Trail of Bits explicitly acknowledges that limitation.

A narrow guard can stop the supplied input while leaving the underlying weakness reachable through another path. The 86% result measures immediate exploit blocking, not clean remediation.

Still, the filtered result shows why experimental conditions matter. The same dataset can support a pessimistic clean-fix headline and a more optimistic exploit-blocking result.

Neither percentage alone settles whether AI agents are dependable patch authors. Together, they show that benchmark labels must describe the tested workflow precisely.

Why Prompt Design and Testing Access Change the Answer

The benchmark controversy exposes a basic rule of agent evaluation: working conditions are part of the system being measured.

A coding agent is not only a language model. It also includes its instructions, tools, execution environment, context, stopping rule, and validation process.

Changing any component can change the result. A model that can run a reproducer receives evidence unavailable to a model producing one response from static text.

The original FLAWED report describes three operating modes. Each represents a different balance between isolation, iteration, and agent autonomy.

The one-shot mode denied shell and internet access. It asked the model to create a complete patch in one response.

That setup can represent highly restricted environments. However, it removes compilation, tests, sanitizers, debugging, and inspection commands from the repair loop.

The iterative mode supplied reproducer scripts and allowed several attempts. The agent could use feedback from earlier runs through a memory file.

The exploratory mode permitted similar access without giving the model a prepared reproducer. The agent had to choose its own validation path before reporting completion.

These modes do not differ only in convenience. They test different capabilities.

One-shot generation asks whether a model can infer a complete repair from source and prose. Iterative patching asks whether it can diagnose failures and improve through execution.

Exploratory patching adds another burden. The agent must construct evidence that its change works, rather than receiving that evidence as part of the task.

Trail of Bits argues that a benchmark should disclose the effect of these conditions. It should not treat their combined average as a general capability score.

Prompt quality creates a similar problem. Security reports often contain an exploit, suspected root cause, affected paths, and mitigation guidance.

Those inputs can be incomplete or wrong. Measuring model behavior under each condition can help teams design safer workflows.

However, intentionally wrong guidance represents adversarial or mistaken task framing. It should not silently influence the number used to describe ordinary AI patching.

A useful report would show clean-fix rates for correct guidance, incomplete guidance, incorrect guidance, and unguided exploration. Readers could then map results to their environment.

Reasoning settings create a third variable. The experiment ran ChatGPT-5.5 at medium effort and Opus 4.8 at high effort, following their defaults.

Trail of Bits notes that neither model used its highest available setting. The experiment also did not isolate how effort affected repair quality.

That omission does not invalidate the observed patches. It limits claims about each model’s attainable performance.

The issue becomes more important when models receive unequal settings. Readers may otherwise interpret differences as model capability rather than configuration effects.

Grading introduces another layer. FLAWED used models to evaluate patches, including cross-review by the other model.

According to Trail of Bits, model grading matched human reviewers on the complete five-category outcome in 65.9% of reviewed cases.

Agreement rose to 87.7% when reviewers asked only whether the original vulnerability was fixed. It fell to 70.5% for whether a new bug appeared.

The two model graders assigned different outcomes to 36.8% of the same patches, Trail of Bits reports. Averaging those judgments does not eliminate the disagreement.

This matters because clean-fix status combines several determinations. A grader must decide whether the old vulnerability remains, whether behavior changed, and whether another weakness appeared.

Even a correct patch can receive an unfavorable label if the grader treats an intended behavior change as a regression. An incomplete patch can pass if tests overlook another vulnerable path.

Trail of Bits says 8% of ActiveMQ verdicts penalized intended changes as regressions. It also identifies a Chromium grading path that allegedly accepted incomplete use-after-free repairs.

The critique further notes a Linux reference patch with an off-by-one vulnerability. Models repeated that error in 248 generated patches, while the automated grader caught 24.

These claims come from Trail of Bits’ reanalysis and remain part of an active methodological dispute. They do not erase the failed patches that Off-by-1 Labs documented.

They show why an AI benchmark requires validation of its own evaluator. A grading pipeline can introduce false positives and false negatives just like a patching pipeline.

The Real Dispute Is AI Patch Generation Versus Verified Repair

1Password measures how often generated patches qualify as clean, while Trail of Bits emphasizes the engineering process that turns proposals into accepted repairs.

The original 1Password findings carry an important warning. Plausible code can block a proof of concept without resolving the vulnerability’s root cause.

Off-by-1 Labs found more than one-third of patches categorized as successful contained security-fragile elements. These patches depended on narrow checks rather than complete remediation.

Spring AI provided a useful example. Models often escaped characters from the supplied malicious input instead of addressing the underlying expression-language exposure.

Such a patch can defeat one payload while leaving alternative inputs available. Functional success against one test then creates false confidence.

Trail of Bits does not reject that lesson. Its new validation skill encodes a similar concern by requiring a second path to the same failure.

The disagreement concerns what happens before and after generation. A benchmark can evaluate a raw model response, or it can evaluate an agent-assisted development process.

Those units of analysis produce different conclusions. Raw generations expose model failure modes. Completed workflows measure whether engineers can reach correct outcomes with agent assistance.

Trail of Bits supports the second view with its Patch the Planet initiative. Engineers directed agents, reviewed their work, and submitted patches to open-source maintainers.

The company examined 186 public pull requests that maintainers had merged or closed by September 14. Maintainers merged 126, producing a 67.7% acceptance rate.

Among those merged submissions, 91 retained the originally proposed security fix without an observed security-relevant revision. Another 33 received security-related changes before acceptance.

Those numbers do not establish correctness. Maintainers can merge defective code, and public review outcomes do not reveal every later regression.

Trail of Bits acknowledges that limitation. It presents acceptance as evidence about practical usefulness and revision burden, not proof of perfect security.

The company also reviewed about 33,500 later commits across Patch the Planet projects. It searched for changes that corrected problems introduced by its patches.

That investigation found at least ten functional bugs, four build, testing, or release-automation bugs, and one performance issue. It reported no exploitable security vulnerabilities.

Absence of a discovered vulnerability is not proof that none exists. Trail of Bits says its broader review remains underway.

One case demonstrates why human-versus-agent framing can mislead. An agent proposed a patch for a memory-safety problem in freenginx’s embedded Perl module.

The patch left one vulnerable path open and introduced a cleanup crash. Off-by-1 Labs correctly criticized it.

A maintainer created a separate fix covering all three vulnerable paths. That human-authored change introduced the same cleanup crash.

Both authors preserved the callback longer, then released it after the request became unusable. Cleanup could run Perl code that accessed the invalid request.

The example does not prove parity between people and agents. It shows that both can miss consequences outside the immediate exploit path.

Trail of Bits compared that case with its consulting records. It reviewed first fixes for 2,265 vulnerabilities across 236 security assessments conducted from 2024 through 2026.

Developers failed to resolve 283 issues fully on their first attempt. That represents 12.5%, with a reported 95% confidence interval from 10.5% to 14.5%.

Those developers knew their software and received detailed vulnerability reports. They also knew Trail of Bits would review their changes.

The comparison remains imperfect. The human developers and benchmark agents did not solve identical tasks under identical conditions.

Still, the data challenges an unrealistic baseline where human patches are automatically correct. Security repair has always depended on review, testing, and revision.

That context changes the practical question. Teams do not need an agent whose first patch is infallible.

They need evidence that an agent improves throughput without increasing residual risk beyond acceptable limits. Measuring that requires comparable teams, tasks, and verification gates.

Trail of Bits’ patching initiative reflects this workflow view. Agents generate and investigate, while engineers and maintainers remain responsible for acceptance.

1Password’s report reflects a different concern. Rapid generation can overwhelm reviewers with patches that look complete but contain subtle defects.

Both concerns can be true. Agent assistance can increase the number of repairable vulnerabilities while making strong verification more important.

Two Agent Skills Turn the Critique Into a Testable Workflow

Trail of Bits is answering the benchmark with operational controls, not merely a more favorable interpretation of the data.

The company released post-patch-validation to examine a security fix before submission. It accepts a vulnerability report plus vulnerable and patched code revisions.

The first task is reproducing the original bug. The skill requires a check that fails against vulnerable code and passes after the patch.

This condition prevents a common testing mistake. A test that passes against both revisions cannot demonstrate that the change removed the vulnerability.

The second task targets a distinct path to the same failure. That path should follow the root cause rather than repeat the original proof of concept.

For example, the agent might inspect another caller, alternate input, error path, or cleanup sequence. The freenginx crash shows why cleanup deserves attention.

The third task checks regressions and new vulnerabilities around the modified code. It compares behavior that should remain stable across both revisions.

The validation plan must also include broader evidence. Trail of Bits names project tests, sanitizer checks, or bounded fuzzing as possible components.

A sanitizer detects classes of runtime errors such as invalid memory access. Bounded fuzzing explores generated inputs within a defined time or scope.

The fourth task treats infrastructure failures as inconclusive. A broken build or missing dependency cannot count as evidence that a vulnerability was reproduced.

That rule sounds obvious, but automated pipelines often collapse execution errors into pass-or-fail labels. Separating invalid evidence protects the final verdict.

The skill preserves its checks and results for maintainers. This makes the agent’s conclusion inspectable instead of asking reviewers to trust a textual assurance.

The second release, review-walkthrough, addresses the human side of the workflow. It converts a complete branch diff into an interactive, ordered review.

Changes appear in a logical reading sequence rather than raw file order. Findings sit beside the relevant code, where an engineer can inspect and respond.

The walkthrough can prepare a GitHub review, but the reviewer remains responsible for submitted comments. That boundary matters for accountability.

Both tools are available through the public security skills repository. They join existing skills for variant analysis, property-based testing, and mutation testing.

Variant analysis searches for related instances of a defect across the codebase. Property-based testing checks behavior across generated inputs rather than a few hand-selected cases.

Mutation testing deliberately alters code to see whether the test suite catches incorrect behavior. Surviving mutations can expose missing assertions or weak coverage.

Together, these techniques create a verification ladder. Reproduction checks the reported exploit, while variant tests challenge the patch’s root-cause coverage.

Regression tests protect intended behavior. Sanitizers and fuzzers search for failures beyond expected examples.

Mutation testing then evaluates whether those tests would detect meaningful errors. Human review assesses design, maintainability, and risks outside automated coverage.

This workflow does not guarantee a safe patch. No finite test suite can establish the absence of every vulnerability.

It does create artifacts that support a stronger decision. Reviewers can see what failed before, what passes now, and which paths remain untested.

That is the strongest part of Trail of Bits’ response. The company converts its methodological objection into practices that other teams can evaluate.

The skills also expose a potential weakness in the critique. Their value must be measured, not assumed because they encode sensible procedures.

Post-patch-validation was not used for the Patch the Planet work analyzed in the blog post. Its effect on defect rates therefore remains unknown.

Teams should test whether it catches known incomplete fixes, newly seeded regressions, and defects outside a supplied proof of concept.

They should also measure false alarms and review time. A verification tool that produces excessive noise can move the bottleneck without improving outcomes.

The same standard applies to review-walkthrough. Better presentation can improve comprehension, but it can also create unjustified confidence if explanations are wrong.

An interactive narrative should support inspection, not replace it. Reviewers still need access to the complete diff, tests, build output, and project context.

Trail of Bits has established a falsifiable direction. The next step is comparative evidence showing how much each skill improves patch quality and review efficiency.

What Security Teams Should Watch Next

The controversy will be resolved by controlled comparisons and reproducible artifacts, not by choosing the more appealing headline percentage.

The first signal is whether 1Password or independent researchers publish condition-separated results. Readers need outcomes grouped by prompt quality, tool access, operating mode, and reasoning effort.

That analysis would show whether the 26% clean-fix rate remains low under realistic development conditions. It would also reveal where restrictions cause the largest decline.

Per-vulnerability results matter because the six targets varied widely. Averages can hide whether agents struggle with particular languages, architectures, or vulnerability classes.

Researchers should also report both exploit blocking and root-cause remediation. The first measures immediate utility, while the second measures repair completeness.

The second signal is an expert replication of disputed grades. Reviewers should examine identical patches under published criteria and record where judgments diverge.

That work should include the Linux off-by-one case, the Chromium callback path, and the ActiveMQ behavior changes identified by Trail of Bits.

A replication that confirms widespread grading errors would weaken the benchmark’s headline. Strong agreement with the original labels would weaken Trail of Bits’ criticism.

The third signal is a controlled evaluation of the two new skills. Agents should patch the same vulnerabilities with and without the validation workflow.

The comparison should measure clean fixes, unresolved variants, introduced regressions, reviewer time, and revisions required before acceptance.

It should also include human-only and agent-assisted teams under comparable conditions. Without that baseline, claims about replacing or outperforming developers remain unsupported.

Organizations do not need to wait for every study before setting policy. They can already separate patch generation from patch approval.

An AI-produced patch should enter the same review system as an unfamiliar contributor’s change. Its origin should not grant trust or trigger automatic rejection.

Teams should preserve the vulnerability report, reproducer, agent transcript, patch, validation commands, and results. Those artifacts make failures diagnosable and later audits possible.

They should require a root-cause explanation before approval. A patch that only filters the supplied payload deserves more scrutiny.

High-risk changes need broader checks around authentication, memory safety, cryptography, parsers, access control, and lifecycle cleanup. These areas punish narrow fixes.

Organizations building internal review systems can also maintain a searchable engineering knowledge base for prior vulnerabilities, rejected patches, and recurring failure patterns.

That record can help reviewers identify repeated mistakes across repositories. It can also preserve why a seemingly simple fix was rejected.

The 1Password AI patching benchmark should not be reduced to a claim that agents fail three-quarters of the time. Its data documents real and consequential repair failures.

Trail of Bits’ critique should not be reduced to a claim that agents succeed 86% of the time. Blocking a supplied exploit is weaker than completing a secure repair.

The useful conclusion sits between those numbers. AI agents can produce valuable patches, but benchmark design and verification determine what those patches mean.

For security leaders, the immediate action is concrete: audit the conditions behind every patching metric, then test agents inside the workflow they will actually use.

Ask whether the agent could compile, reproduce, explore variants, and detect regressions. Then ask whether an expert reviewed evidence rather than trusting a clean-looking diff.

That process offers a better decision than either headline alone. The real test of the 1Password AI patching benchmark is whether its findings improve verification without discouraging defensible automation.

Give every agent the context to do better work

Connect your agents to the knowledge, decisions, and history already organized in remio.

remio currently supports Windows 10+ (x64) and Macs with Apple silicon.

Your AI Partner at Work
Get more done with remio

Plan. Create. Deliver.
All in one place.

bottom of page