Security Starts Before the SOC: The New Vulnerability Hiding in the Code AI Writes

Security Starts Before the SOC: The New Vulnerability Hiding in the Code AI Writes
Category
Blog, Dedicated Team, Outstaffing, Recruitment Process, Strategy, Talents
Date Nov 4, 2026

Everyone Is Watching the Attacker. The Real Danger Is Already Inside Your Code

At every cybersecurity conference over the past year, the same narrative repeats almost word for word: artificial intelligence is making attackers faster, smarter, and more dangerous. Flawless phishing, malicious code built in minutes, automated scanning for weaknesses at a scale we have never seen. All of it is true, and all of it matters. But the exclusive focus on the attacker’s side squeezes out the bigger story — the one unfolding quietly, inside organizations themselves, inside the development process.

Because while we are busy asking how AI arms the adversary, it has already fundamentally changed the way our own code gets written. According to Google, more than a quarter of all new code at the company is now written by AI. Stack Overflow’s 2025 Developer Survey found that 84% of developers already use AI tools or plan to — up from 76% the year before. The code that runs our products is no longer written by humans alone. And the question almost no one is asking during cyber week is not “how do we defend against AI,” but “who is checking the code AI writes for us.”

The Attack Surface Didn’t Grow. It Moved Inward

For years we thought of the attack surface as something external: ports, API endpoints, edge devices, third-party vendors. That model assumed the code itself — the core — was written, read, and reviewed by people who understood it. That assumption no longer holds.

When code is written faster than we can read it, a gap opens. Every line accepted because “it worked,” without anyone truly understanding why it works, is a potential entry point. And this is not a theoretical warning. A 2025 study by the security firm Veracode, which tested more than a hundred large language models across 80 development tasks, found that nearly half — 45% — of AI-generated code contained a security vulnerability from the OWASP Top 10. In some categories the picture is far worse: when defending against Cross-Site Scripting, the models failed in 86% of cases, and against Log Injection, in 88%. In certain languages, such as Java, the failure rate climbed past 70%.

In other words: the code looks clean, it runs, it passes the functional tests — and it is still wide open. The new attack surface is not at the edge of the network. It is in line 240 of the function no one stopped to read.

The Finding That Should Worry Every CTO

Some will say this is a teething problem — the models are improving, the next generation will write safer code. The data says otherwise. The same study found that the models’ security performance did not improve over time, even as their syntactic accuracy — their ability to produce code that runs — did. Larger models were not meaningfully safer than smaller ones. The researchers conclude that this is a structural problem, not a problem of size or time.

The implication is sharp: you cannot “wait for the next version” and expect the problem to solve itself. As the models get better at writing code that works, the temptation to trust them grows — at precisely the same pace at which the security risk stays exactly where it is. The gap between “looks right” and “is secure” is not shrinking. It is widening.

How a Vulnerability Like This Slips Through the Cracks

It is worth pausing on how this actually happens, because the heart of the problem hides here. A developer under sprint pressure asks the model for a function that handles user input, and within seconds gets code that looks entirely professional — sensible variable names, error handling, even comments. They run the tests, the tests pass green, and the code is pushed to a pull request. So far, a perfectly normal process to any observer.

On the other side sits another developer who is supposed to do the code review. In front of them are hundreds of lines, written partly by a human and partly by a machine, and they, also under pressure, skim them quickly. The code works, the logic looks reasonable, and there is no visual red flag. What they do not see is that the model chose an outdated pattern for input sanitization, skipped an authorization check at a critical point, or used an encryption function already considered weak. Neither of them stopped to ask the right question: what happens here when someone hostile deliberately feeds in malicious input.

That is exactly the point. The vulnerability does not enter through gross negligence or an incompetent developer. It enters through code that looks good, that passes all the automated checks, and that no one read with a truly critical eye. The better the models get at producing code that looks right, the easier it becomes to lose sight of whether it is safe. The 45% in Veracode’s study are not random accidents; they are the predictable result of a process in which speed outran judgment.

And here is the part that should genuinely worry anyone running an organization: this problem is almost entirely invisible at the leadership layer. The dashboards show green, delivery velocity is up, productivity metrics are improving. Nothing in the weekly numbers signals that a security debt is piling up beneath the surface. That gap between what the metrics show and what is actually happening in the code is precisely what makes the issue dangerous — and why it takes people, not just instrumented dashboards, to catch it.

The Paradox: AI Doesn’t Make Developers Redundant — It Makes Judgment More Expensive

The prevailing narrative says AI reduces the need for developers. In practice, the opposite is happening. The moment writing code becomes fast and cheap, the scarce and valuable asset is no longer the ability to write — it is the ability to judge. The difference between a developer who looks at a model’s output and asks “does it work” and one who asks “why does it work, and what happens here when someone tries to break it” is the difference between an exposed organization and a defended one.

Developers feel this themselves. That same Stack Overflow survey found that 46% of developers do not trust the accuracy of AI tools’ output — a sharp rise from 31% the year before — and 45% point to debugging AI-generated code as one of their biggest frustrations, because it is time-consuming. The time saved in writing did not disappear. It migrated down the chain — to verification, to review, to remediation. And the more an organization leans on AI, the more it discovers that the bottleneck is not the keyboard, but the critical eye behind it.

Why Tools Don’t Close the Gap

The instinctive response of many organizations is to buy another tool: another SAST scanner, another automated testing layer, another product that promises to catch vulnerabilities in AI-written code. These tools matter, but they are not a solution in themselves. A scanner can flag a hundred findings, but someone has to understand which are real, which are critical, and what the business implications of each one are. Automation identifies patterns; it does not exercise judgment.

From this follows the most important organizational conclusion: security can no longer be a stage at the end of the development process — a review that happens before release to production. It must be part of the DNA of the development team, from the very first line. And that, first and foremost, is a question of hiring. Not of which tools you bought, but of who sits in front of the screen when the model proposes a solution, and asks the right question before they press Enter.

The Skill That Became Rare: Critically Reading Machine Code

If writing became cheap, what became expensive is the ability to read. And not just any reading — critical, adversarial reading of code whose origin is unknown. This is a fundamentally different skill from writing code. It requires the engineer to assume the code in front of them might be wrong even when it looks correct, to ask “how could I break this” before “does this work,” and to treat threat modeling as a default mindset rather than a separate stage somewhere at the end.

This is exactly the skill that a junior developer who learned mainly to craft good prompts has not necessarily developed. They know how to take output and integrate it quickly, but the gap between “making the code work” and “knowing when the code is dangerous” is a gap of experience, of security intuition, and of a deep understanding of how systems break in the real world. You cannot produce that gap in a prompt, and you cannot close it with another tool.

The organizational meaning is that the definition of an engineer’s role is changing. They are less a “code producer” and more an “editor and owner” — someone who exercises judgment over artifacts arriving from mixed sources, human and machine alike. Companies that understand this actively seek out and cultivate this skill: they hire for it, they build onboarding processes that teach critical reading rather than just fast writing, and they reward the person who catches the problem before it reaches production — not only the one who ships features quickly.

And here a consideration that has grown central comes into play: where you even find these people. The local talent pool of engineers with deep security intuition is shallow and expensive in nearly every market. Organizations that extend their search for talent beyond their geographic borders dramatically increase their odds of finding this rare profile — rather than settling for whoever happens to be available at the moment. In an era where human judgment is the critical asset, the ability to hire it from anywhere in the world is a genuine competitive advantage.

What We See in the Field

From our vantage point, working with technology companies building development teams, the difference is already visible. The companies asking the right questions are hiring differently. They are no longer looking primarily for whoever writes fastest — because speed has become a cheap commodity. They are looking for whoever knows how to spot things: the engineer who reads machine code with a critical eye, who thinks in threat models by default, who understands that their role has shifted from “code producer” to “editor and owner” of code from mixed origins.

This is a deep shift in the hiring profile. Seniority in writing code is no longer the same thing as security maturity. Companies that grasp this redefine what they are looking for: less “how many features can they push in a sprint,” more “do they know how to say no to the model, and explain why.” In a global market, where access to talent is no longer bounded by geography, the ability to locate this profile — and not just the nearest available developer — becomes a real competitive edge.

What This Gap Costs the Organization — Beyond the Security Incident

It is easy to think of a vulnerability in code as a binary risk: either someone exploits it, or they do not. But the real cost to the organization accumulates long before the first security incident, and usually in silence. Every line of unexamined code that enters the system is technical debt that compounds. It makes debugging harder, lengthens response time when something breaks, and increases dependence on external tools just to understand what your own system is actually doing.

Then there is the cost of the fix. A vulnerability caught in code review costs a fraction of what it costs when discovered in production, and a fraction again of what it costs after it has been exploited. When a company discovers that a significant share of its code was written fast but never examined in depth, it is not dealing with a single bug but with a systemic risk spread across the entire codebase — and dealing with it requires precisely the kind of experienced engineers who are hardest to hire, at precisely the moment the pressure is highest.

From this follows the business paradox in full force. The appeal of fast AI-assisted development is savings in cost and time, and that appeal is real. But savings that come at the expense of human judgment create a hidden liability that will be paid back later, with interest. Investing in one engineer who knows how to read code with a critical eye is far cheaper than the cost of a single security incident — and certainly cheaper than the cost of lost customer trust, which is hard to win back.

This is exactly the accounting that leading companies are already doing when they build their development teams. They are not just asking “how much does another developer cost us,” but “how much does the absence of the judgment this developer brings cost us.” In the AI era, the answer to the second question is far larger — and that is why the quality of hiring, not just the speed of development, has become the security metric that truly matters.

The Bottom Line: The Strongest Defense Is People Who Know When Not to Trust

In an era where machines write a growing share of our code, it is easy to fall into the illusion that defense is purely a technological matter — a question of a better model, a smarter scanner, broader automation. But the truth is the reverse. The better AI gets at producing code that looks right, the greater the value of the person who knows how to spot when it is not really right.

The strongest defense in the AI era is no longer a technology layer. It is people who know when not to trust the machine. The organizations that understand this early — and build their development teams around judgment, not just speed — are the ones who will enter the next era defended from the inside, not just from the outside.