VICBench shows vulnerability detection still needs humans
VICBench tests whether today’s vulnerability-inducing commit detection methods can find where security bugs actually entered code, and the answer is useful but humbling: current tools help, yet still miss too much for fully automated version-range security work.
TL;DR: VICBench is a useful reality check for AI security tooling because today’s methods still struggle to identify the exact commits that introduced real vulnerabilities.
What is VICBench actually measuring?
The primary source is the arXiv cs.AI/cs.CL paper titled “VICBench: A Multi-Language Benchmark for Code Vulnerability Detection.” It focuses on vulnerability-inducing commits, or VICs: the commits that first introduced a vulnerability into a codebase.
That sounds narrow. It is not.
If you only know the patch that fixed a CVE, you know where the fire was put out. You still may not know when the fire started. That matters because security teams need to know which software versions are vulnerable, which downstream packages are affected, and how far back a fix needs to be applied.
VICBench contains 100 verified VICs for 100 CVEs across 88 projects. The benchmark spans Python, Java, and C++, and covers 48 CWE types. That mix matters because many security benchmarks quietly overfit to a small slice of the world: one language, one project family, simple patches, neat examples.
VICBench is trying to be messier. More like production.
The paper reports that vulnerability fixes average 38.6 lines, while the corresponding vulnerability-inducing commits average 252.5 lines. That asymmetry is the core problem. The patch may be small. The original mistake may be buried in a larger feature, refactor, dependency change, or architectural decision.

Why do current tools still miss so much?
The paper evaluates state-of-the-art VIC detection approaches, including V-SZZ and LLM4SZZ. Reported F1 scores land between 33.3% and 40.1%.
That is not “AI solves software security.” It is also not useless.
It means these systems can narrow the search space, but they are not reliable enough to replace expert review. If a tool is wrong about the vulnerability-inducing commit, the blast radius calculation can be wrong too. Teams may mark safe versions as vulnerable, or worse, miss versions that are actually exposed.
The interesting part is that VICBench itself was built with dual annotation by human experts and an agentic workflow. That is a sensible pattern. Use automation to scale the search, then use humans to verify the claims. In security, provenance matters. A confident but wrong commit link can create bad advisories, wasted patching work, and false comfort.
This is where a lot of AI security demos get ahead of themselves. They show a model spotting a flaw or explaining a diff. Fine. Useful. But production security work often depends on historical reasoning across code, commits, issue threads, patches, and release timelines. That is a harder job than “find the bug in this function.”
What should builders take from this benchmark?
For AI security product teams, VICBench is a reminder to test on the ugly middle. Not just synthetic vulnerable snippets. Not just single-language repos. Not just toy commits where the bug is introduced in one obvious line.
A good tool should show its work: the suspected VIC, the evidence trail, alternative candidate commits, affected file paths, relevant CVE context, and confidence limits. The user should be able to audit the reasoning without trusting a black box.
For internal platform teams, the benchmark points to a practical workflow. Start with model-assisted triage, not model-owned truth. Feed the tool a CVE and patch, let it rank likely introducing commits, then have a security engineer confirm or reject the candidates. Save the confirmed cases. Over time, that becomes your organization’s own vulnerability provenance dataset.
The catch most readers miss: the value is not only better bug finding. It is better version-range accuracy. If you maintain packages, ship appliances, manage containers, or produce SBOMs, knowing exactly when a vulnerability entered the code can be the difference between targeted remediation and blanket panic. Try VIC-style analysis on a few past incidents first. Measure how often the tool agrees with your human postmortems. Then decide where automation belongs.