By NHI Mgmt Group Editorial TeamBased on Sonar: “OpenAI GPT-5.5: An evaluation” (April 23, 2026)

TL;DR: GPT-5.5 shows a low vulnerability density of 75 per mLOC and a flat severity distribution in Sonar’s evaluation, but concurrency bugs at 170 per mLOC and sparse documentation still raise the cost of human verification. The practical lesson is that security can improve while review burden shifts upward, so teams need stronger testing and analysis gates, not looser trust.


At a glance

What this is: Sonar’s benchmark review says GPT-5.5 has a notably strong security profile, but its output still creates verification debt through concurrency bugs, sparse comments and high review complexity.

Why it matters: Teams adopting code-generating LLMs need to separate security quality from reviewability, because lower vulnerability density does not remove the need for stronger test and analysis gates.

By the numbers:

  • GPT-5.5 showed a vulnerability density of 75 per mLOC in Sonar’s evaluation.
  • Across 4,444 benchmark tasks, GPT-5.5 generated 703,324 lines of code.
  • Only 2.0% of GPT-5.5’s generated output was comments.

Context

GPT-5.5 sits in a growing class of code-generating LLMs where security performance, correctness and human review cost do not move together. A model can look safe on vulnerability metrics while still producing code that is difficult to inspect, test and maintain.

The relevant governance problem is verification debt: the gap between how quickly AI can generate code and how reliably teams can validate it. For IAM, NHI and application security programmes, that gap matters because insecure or merely brittle code often slips through when review capacity is assumed rather than engineered.

In practice, the article is about where confidence in model output should end. Security may be strong, but operational assurance still depends on testing, static analysis and disciplined acceptance criteria, which is typical of mature engineering teams rather than an edge case.


Key questions

Q: What should teams do first when AI-generated code passes tests but still looks risky?

A: Start with automated static analysis and complexity review before any human approval. Passing tests only show that the code solved the sample task, not that it is maintainable or safe enough for production. The first control should therefore be to scan, score, and gate the output before it enters the merge or release path.

Q: Why do concurrency bugs matter even when vulnerability density is low?

A: Concurrency defects are often timing-dependent and environment-specific, so they can survive static review even when the code looks secure. They also become more likely in high-volume generated output that uses asynchronous patterns or shared state. That makes concurrency a functional and operational risk, not just a code quality issue.

Q: What are the signs that verification debt is building in an AI coding workflow?

A: Look for rising code volume, low comment density, high cognitive complexity and review cycles that keep expanding without a matching drop in defects. If teams spend more time interpreting generated code than testing it, the workflow is already moving faster than assurance can keep up.

Q: How should security and engineering teams balance model trust against testing?

A: Use the model’s security profile as input, not as a release decision. Even a strong security result should still pass through functional testing, static analysis and targeted concurrency checks, because trust in generated code has to be earned at verification time.


Technical breakdown

Why vulnerability density does not equal assurance

Vulnerability density measures how often security defects appear in generated code, but it does not capture how hard that code is to verify or how likely it is to fail under real workload conditions. A flat severity distribution is reassuring because it suggests the model is not hiding serious issues behind a low headline number. But security metrics alone do not account for concurrency, branching depth, or the absence of explanatory comments, all of which increase the cost of trustworthy review. A model can therefore look stronger on security while still leaving teams with substantial validation work.

Practical implication: Treat low vulnerability density as one acceptance signal, not a substitute for testing and review gates.

How concurrency bugs become the dominant review risk

Concurrency and threading defects are especially hard to catch because they depend on timing, scheduling and environment-specific interactions. Unlike a straightforward input-validation flaw, they often appear correct in a static read-through and only fail under load, race conditions or unusual execution order. That makes them disproportionately expensive in AI-generated code, where volume can encourage more parallel patterns and more complicated control flow. When a model produces many lines of code quickly, the probability of latent threading issues rises even if security-specific defects stay low.

Practical implication: Add concurrency-focused tests and stress checks wherever the generated code uses shared state or asynchronous flows.

Verification debt grows when documentation is sparse

Verification debt is the accumulated cost of reviewing code that is large, complex and under-documented. Cyclomatic and cognitive complexity both matter because they describe how many decisions a reviewer must mentally simulate before trusting the code. Sparse comments worsen that burden by removing signposts, especially across large outputs where small issues become easier to miss. In AI-generated code, this creates a structural mismatch: generation scales quickly, but human comprehension does not. The result is not necessarily insecure code, but code that is more expensive to validate and maintain responsibly.

Practical implication: Use review criteria that penalise opaque, high-complexity output even when the vulnerability score looks acceptable.


NHI Mgmt Group analysis

Verification debt is now a first-class governance issue for AI code generation. A model can produce safer code and still increase the downstream assurance burden if it emits large, sparse and complex outputs. That changes the control question from whether the model is secure to whether the organisation can verify the output at the same pace it is generated. For practitioners, acceptance gates need to measure reviewability, not just defect density.

The security profile of generated code is only one part of operational risk. A flat vulnerability distribution is useful because it suggests the model is not simply evading easy static checks. But review teams still inherit concurrency defects, maintainability friction and test gaps, which are exactly the places where latent failures surface later. The governance lesson is that AI code assurance must combine static analysis, test execution and human inspection, not rely on one signal.

Concurrent logic is the named risk pattern that should get the most attention here. Threading bugs become more consequential as output volume rises, because they are hard to reproduce and hard to reason about from source alone. This is especially relevant where generated code feeds services, pipelines or agent workflows that depend on reliable state handling. The practitioner conclusion is to treat concurrency as a verification choke point, not a secondary bug class.

Security metrics can validate a model, but they cannot validate a programme. That distinction matters for identity, application and platform teams evaluating AI-assisted development. If the code review process is not adapted to the model’s output style, the organisation can overestimate readiness while accumulating silent review backlog. The control objective is assurance at scale, and that requires more than celebrating a low vulnerability score.

From our research library:

What this signals

Verification debt is the real governance challenge in AI-assisted coding. A model can produce a strong security profile and still leave teams with more code than they can comfortably inspect, especially when comments are sparse and complexity is high. That shifts programme risk from exploitability alone to assurance capacity, which is where many teams underinvest.

Concurrency remains the most operationally awkward defect class in generated code. The problem is not just that threading bugs exist, but that they often evade ordinary review and only appear under load or unusual timing. Teams that use AI coding tools should plan for that from the start and move the detection burden into tests and analysis rather than human reading alone.

AI-related credential leaks surged 81.5% year-over-year in 2025, with the surrounding AI infrastructure leaking 5x faster than core LLM providers, according to the State of Secrets Sprawl 2026. That wider signal matters here because AI development pipelines increasingly depend on the same control stack for secrets, reviews and build integrity, and the verification burden grows whenever those layers are treated as separate problems.


For practitioners

  • Recalibrate acceptance gates for AI-generated code Require security, complexity and testability thresholds before generated code reaches merge. A low vulnerability count should not override poor reviewability, sparse comments or high branch complexity.
  • Add concurrency-specific verification Target threaded, asynchronous and shared-state code with race-condition tests, stress tests and failure-injection checks, because those defects are disproportionately expensive to find in review.
  • Score reviewability alongside defect density Track cognitive complexity, comment density and test pass rate together so teams can see when output volume is creating verification debt faster than reviewers can absorb it.
  • Separate security approval from functional approval Do not let a clean vulnerability report substitute for runtime validation. Generated code still needs functional testing, especially where correctness depends on ordering, timing or resource coordination.

Key takeaways

  • GPT-5.5’s security profile is strong, but the main governance challenge is the amount of human verification still required to trust the output.
  • Concurrency defects, sparse comments and high complexity create a review burden that security metrics alone do not remove.
  • Teams should treat AI-generated code as a verification problem first and a vulnerability problem second, with testing and analysis carrying more of the load.

Key terms

  • Verification debt: The accumulated gap between the identities an organisation manages and the confidence it can still have in validating them at the moment of access. It grows when verification, entitlement review, and offboarding do not keep pace with identity sprawl.
  • Cognitive Complexity: A metric that estimates how hard a function or code path is to understand, based on nesting, branching, and flow changes. Higher scores usually mean more mental effort for reviewers and a greater chance of maintenance errors.
  • Concurrency Bug: A concurrency bug is a defect caused by multiple operations interacting in the wrong order or at the wrong time. Kernel and infrastructure teams often only see these faults under load, where scheduling, races, and shared-state contention create behavior that does not appear in simpler tests.
  • Code Smell: A code smell is a maintainability problem that makes software harder to understand, test, or change safely. It is not always an immediate exploit, but high smell density increases review burden, slows patching, and raises the chance that security defects survive future changes.

Deepen your knowledge

The NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, workload identity and secrets management alongside the control thinking security teams need around agentic systems. It helps practitioners connect identity governance to the review and assurance decisions that underpin modern security programmes.
NHIMG Editorial Note
Published by the NHIMG editorial team on August 19, 2026.
Updated on October 12, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org