
AI Made Code Cheap. Review Is the New Bottleneck: Reasonable Application Security #79
AI can generate pull requests faster than humans can review them. The result is not free velocity—it is PR fatigue, delayed scrutiny, and growing security risk.
Hey there,
AI has made it almost effortless to create a plausible pull request. It hasn't made architectural judgment, security and privacy review, or maintainer attention any cheaper. When output scales faster than verification, the bottleneck moves downstream—and the people guarding the merge queue absorb the cost.
Chris’s Take
PR fatigue occurs when generation scales faster than verification. I’ve heard anecdotally from friends in the industry that PR fatigue is a real problem that existed before AI, but AI is contributing to the challenges. I define PR fatigue as the state a developer reaches when an overwhelming number of PRs require review, leading to judgment errors not out of malice, but from looking at the same thing too many times.
A pull request is a request for human attention
We’re moving to a new concept in software delivery. We’re shifting a developer’s time away from brainstorming, designing code, implementing, and, hopefully, testing and security review. The new paradigm is to iterate with AI and then create a PR. The challenge falls on those who have to review another developer’s PR that was “influenced” or created entirely by an AI coding agent.
The diff isn’t the problem, and it never was. The challenge is that, as a reviewer, you have to sniff out the code's intent and system context, evaluate security constraints (against the threat model), and decide whether to merge the code.
The onus of work is on the reviewer. With AI, you can turn and burn a fix right back into the PR in minutes, and then the reviewer has to start the process over. They have to walk back through the context, determine whether their issues are resolved, and sniff out any new issues the fix may have introduced.
Linux networking is the clearest warning
Linux networking gives us our first set of real data to consider. In the first reference below, Jakub Kicinski describes how Linux networking maintainers are measuring the cost of AI-assisted patching and review via a Linux kernel mailing list post.
In the primary Linux 7.3 networking pull request, Jakub reported 632 net patches and 648 net next patches. He estimated that one-third to one-half of the latter were AI-driven low-priority fixes, cleanups, and clarifications, and then wrote that the team was “completely overwhelmed.”
The important signal is not that every AI-assisted patch was bad. It is that cheap generation changed the volume and priority mix faster than the maintainer capacity could adapt to.
This is a pattern, not a Linux exception
Linux is the loudest example, not the only one. The wave of AI-generated PRs is slowing things down and costing extra review work. A study of 22,953 AI-assisted pull requests found that lower-experience contributors submitted 2.15 times as many commits and changed 1.47 times as many files. Their PRs received 4.52 times as many review comments, were accepted 31% less often, and stayed open 5.16 times longer.
The data don’t lie, and we now have more contributors with less experience. AI is enabling folks with less knowledge and experience to code, and they’re generating PRs that are more complex and take more time to review. The fixes required for these PRs are taking longer and requiring more cycles to complete. The Enterprise is not immune to this new paradigm, as we bring on new entry-level developers. They feel empowered by the AI, but the data shows this feeling of empowerment is a false sense of security.
PR fatigue becomes an AppSec problem
All that we’ve discussed thus far lands here — with the AppSec problem. If reviewers are under pressure from the PR queue, they may skim, defer, or rubber-stamp PRs that cross their virtual desks. If a PR is for a security- or privacy-relevant change, this is exactly the time when we don’t want something skimmed. Attention to detail matters most here.
A green CI result for a PR can prove that known checks passed; it cannot prove that the change matches the intended architecture, preserves trust boundaries via the threat model, or avoids introducing an insecure code snippet, a vulnerability, or an insecure design pattern.
An AI reviewer could help, but it has to be structured so as not to be a token furnace (credit to Ron Perris of Manicode, by way of Jim Manico in an upcoming Application Security Podcast episode), looping back and forth and burning hundreds or thousands of dollars in tokens trying to resolve a problem.
Controls that protect reviewer attention
Fixing this isn’t impossible—it just takes deliberate process design. Most Enterprise processes are structured and rigid to some extent, but some items on this list could be improved.
Require proof before submission: mandate the stating of intent, scope, test evidence, security and privacy impact, and the human accountable for the change.
Constrain the unit of review: cap diff size, files touched, concurrent agent PRs, and unrelated changes per PR. When AI is involved, the PR must be as small as possible, or we’re back to the token furnace churn.
Use risk-tiered gates: route authentication, authorization, secrets, dependency, infrastructure, and trust-boundary changes through a deeper human review with stricter requirements.
Add circuit breakers: automatically pause or close PRs that repeatedly fail CI, duplicate active work, ignore reviewer instructions, or exceed revision thresholds. If a PR submitter is misbehaving, send them to PR jail (listen to the upcoming AppSec Podcast episode with Jeevan Singh, where he explains how we implemented a PR jail, and how it changed things for the better without hurting any feelings).
Measure the queue, not just generation: metrics are always the thing we put off until the end, and heck, it made it the final item on my list. Track human review minutes, time to first review, revision rounds, queue age, abandonment, escaped defects, and reviewer load. These things help you to measure the problem, and the key with metrics is to measure what matters.
Delivery capacity is not how much code a team can generate. It is how much change the team can responsibly understand, verify, and own. The fastest safe team refuses to generate work faster than it can review it, no matter what model they use.
If AI doubles your pull-request output but your experienced review capacity stays flat, did engineering get faster—or did the risk queue just get longer?
Worthwhile Security Reads
[GIT PULL] Networking for 7.3 — Jakub Kicinski’s original Linux networking pull request reports 632 net patches, 648 net-next patches, and an estimate that one-third to one-half of the latter were AI-driven low-priority work. Chris’s take: The data doesn’t lie, and this is an example of the PR fatigue in real life, with data to back it up.
Beyond the Payload: How User Invocation Shapes Coding Agent Vulnerability to Repository Poisoning — A new benchmark shows that task type, prompt wording, and supplied agent rules can dramatically change compromise rates; test execution emerged as a particularly quiet attack surface. Chris’s take: Coding-agent security is contextual. The same poisoned repository can be resisted or compromised depending on what the user asks the agent to do.
AI-Assisted HTTP Terminator Finds Novel HTTP Desync Techniques and Apache Zero-Day — An AI-assisted system explored 30,000 desynchronization candidates, uncovered new HTTP request and response desync techniques, and helped expose an Apache Traffic Server zero-day across authorized targets. Chris’s take: AI doing what AI does best, looking at every possible candidate and exploring each, while the human waits for the response.
Changes to Our Contribution Policies — Godot explains why AI-amplified contribution volume is exhausting maintainers and why it now prohibits agent-submitted and substantially AI-authored changes. Chris’s take: “The number of open PRs has become a meme in the community,” and “AI contributions have the added pain of being demoralizing” say it all. This is more proof of the PR daze most developers are experiencing today.
Podcast Corner
Application Security Podcast
James Berthoty explains how contextual payloads and application-aware testing are reshaping DAST—and why autonomy, token costs, and production safety still matter.
Security Table
Is Spec-Driven Development Already Dead?
We debate whether detailed specifications and disposable, AI-generated code can deliver precision—or simply recreate the old problem of implementations failing to follow the spec.
What did I miss this week? Hit reply and tell me.
— Chris

