Veracode's 2026 Report: AI Code Security Pass Rate Still 56%
Quick answer: Veracode has now tested more than 100 AI models over four years of its GenAI Code Security Report, and the average security pass rate across all of them is 56%, meaning roughly 44%…
Quick answer: Veracode has now tested more than 100 AI models over four years of its GenAI Code Security Report, and the average security pass rate across all of them is 56%, meaning roughly 44% of AI-generated code fails a security review. That number hasn't meaningfully moved across the whole four-year window, even as the volume of AI-generated code shipping into production has exploded. If you're shipping an app that an AI tool helped write, and most people are now, this is the actual base rate you're working with, whether or not anyone's told you.
What the report actually found
The 2026 edition added 11 new models to the test, run across the same suite of 80 coding tasks Veracode has used throughout, with this round's dataset collected in summer 2026. Read the report yourself at veracode.com.
The spread between models is real, but it doesn't change the headline. GPT-5.5 came out on top at a 68% security pass rate, the best of the eleven. Six of the eleven models tested clustered between 50% and 53%. Put plainly: even the best model available still fails roughly 1 in 3 security tasks, and the worst fails close to 1 in 2. That's the range on offer right now, not a temporary dip while the industry catches up.
Java is the clearest case of a trend that still isn't good enough. Veracode notes it's shown the clearest year-over-year improvement of any language tested, and it's still dead last by a wide margin, with a mean security pass rate of only 30%. Improving and adequate are two different things, and Java's still only doing one of them.
Maybe the most useful finding for anyone picking a coding tool based on a "built for developers" pitch: purpose-built coding models averaged a 51% pass rate, general-purpose models averaged 52%. Specialized training for writing code did not translate into safer code. That's a direct answer to "wouldn't a model built specifically for coding be more secure," and the data says no.
This lines up with what we cited in an earlier post: Veracode's prior-year testing on the same 80-task suite found AI-generated code introduced exploitable flaws in 45% of individual test runs, with Java failing at 72% and cross-site-scripting defenses failing in 86% of relevant samples. That single-year figure and this report's four-year average (44%) aren't identical measurements, but they tell the same story from two angles: this isn't a number that's been trending down.
Getting a smarter model did not fix it
This is the part worth sitting with, because it's counterintuitive if you've been told that better models, or the right specialized model, mean safer code. The purpose-built-versus-general-purpose numbers above are the cleanest evidence against that: models trained specifically to write code scored slightly worse on security than models that weren't specialized for coding at all. If specialization for the task of writing code doesn't move the needle, "just use a smarter model" was never going to be the fix either.
The reason isn't mysterious once you say it plainly: none of these models, coding-specialized or not, are being asked to reason about a threat model. They're being asked to satisfy a prompt. "Build me a login form" gets you a login form that works, because "works" is what the prompt asked for and what the model was trained and evaluated to deliver. Whether that login form rate-limits attempts, hashes correctly, or escapes its inputs isn't part of "works" unless someone specifically says so, and almost nobody does, because most people asking don't know that's a separate question to ask. A model that's dramatically better at understanding intent and writing clean, functional code has no particular reason to be better at a question it was never asked. That's the whole story of why smarter didn't mean safer, and four years of the same test says there's no obvious reason to expect next year's models to break the pattern on their own either.
This matches what we see when we actually check
It's not just Veracode's finding. When we ran a real vibe-coded app through FlawPilot, the app that scored a perfect 100 on performance, it came back with a 70 on security and 16 open findings: no DMARC record, no CSP header, no HSTS, no clickjacking protection, among others. Nothing on that list showed up by using the app. All of it showed up the moment something outside the team went looking on purpose.
That's the practical version of Veracode's 44%. It's not a statistic about code you'll never touch, it's a rough description of the app you (or a tool, on your behalf) shipped last week. Roughly coin-flip odds that something a security review would flag is sitting in it right now, and "the model is pretty good" was never going to be the thing that ruled that out.
What to actually do about it
The honest fix for a base rate isn't picking a better model and hoping the number improves for you personally, the report already shows that doesn't reliably happen. It's checking the actual, deployed result instead of trusting the process that produced it.
That's a different question than "which AI coding tool is safest," which doesn't really have a stable answer given how fast these models change. It's "does my specific app, right now, in production, have the flaws a security review would catch." That question has a fast, concrete answer if you go looking for it, and it's the same answer whether Lovable, Bolt.new, v0, Cursor, or a human wrote the code underneath it.
Your turn
You don't need to read a 2026 industry report to know your own odds. You need to run the scan.
No setup, no coding, no passwords required. Drop in your app's URL, and in about two minutes you get a full scorecard: security, performance, infrastructure, and SEO, each out of 100, every finding in plain English, with a toggle between the founder view and the full technical one.
44% isn't a number about the industry. It might be a number about the app you shipped this week, and there's a two-minute way to find out which side of it you're on.
Frequently asked questions
How FlawPilot helps
FlawPilot is useful because it connects detection to remediation. A scan can tell you a Row-Level Security policy is missing. The next step, actually closing it, is what determines whether the risk goes away.
Every finding lands in a ranked “What to do next” list, written in plain English instead of a severity label. The fix for the top issue in every pillar, security, performance, infrastructure, SEO, is included in the free report, spelled out clearly enough to act on without a security background. For a full crawl of the site, and for findings that go deeper than a config change, Logicwind's engineering team builds a prioritized remediation roadmap and puts people on it directly: RLS policies, header configuration, DNS records, all of it.
The boundaries matter as much as the capability. FlawPilot only checks publicly accessible signals to run the scan, it never touches your server, your codebase, or your credentials, and it doesn't auto-apply any fix without a human in the loop. Finding the gap and fixing the gap happen through the same team, but that means engineers doing the work, not a bot merging code on your behalf.
Verify your AI-generated app is production-ready.
80+ security checks in 60 seconds - free, no account needed.
No account needed · Public signals only · Results in minutes