P.K. SHARMA

Cyber security intelligence, AI governance, practitioner analysis

AI Security

A code-grounded audit checked 15,556 CVEs against their NVD labels. The weakness type is exactly right under half the time, and your triage treats it as ground truth

Only 49.70% of NVD CWE labels exactly match a code-grounded reading. Most of the rest are defensible under an ambiguous taxonomy, not wrong, and only 3.63% are outright errors. The failure is downstream: automation reads a defensible classification as a precise fact, and never weights the one field that predicts quality, which is who assigned it.

By Parminder Kumar Sharma · · 7 min read

A blank manila classification tag on a dark background, captioned NVD CWE labels, the weakness type is exact under half the time, 49.70% exact and 81.07% at least defensible, from a code-grounded audit of 15,556 CVEs

What the audit actually measured

Almost every automated vulnerability workflow leans on one field it did not produce: the CWE on the NVD record, the machine-readable weakness type that says what kind of flaw a CVE is. Dashboards group by it, risk models weight it, and remediation playbooks branch on it. Almost nobody has checked how often that field is right.

On 25 August 2026, four researchers did. How Reliable Are NVD CWE Labels? A Large-Scale Semantic Audit with Seclometry (arXiv:2608.21977, Nong, Du, Behravan and Cai) audited the CWE labels on 15,556 open-source CVEs disclosed between 2017 and 2026, not against opinion but against the code. Their method, Seclometry, reduces a vulnerability to its root cause, trigger condition, violated property, exploit mechanism and impact, and an auditing agent grounded in that representation assigns the label the code supports. On a 100-CVE manually curated benchmark the agent reached 85% exact-match and 92% ambiguity-aware accuracy, well ahead of a single-prompt LLM (46%) and a trained classifier (52%), which is what makes its verdict on the other 15,456 worth reading.

Under half exact is the headline. Defensible is the truth

The number that will travel is that only 49.70% of NVD CWE labels exactly match the code-grounded label. It is real, and it is worth sitting with. But read alone it is misleading, and the honest version is more interesting.

One CWE label, consumed as exact ground truth

ONE CWE LABEL, CONSUMED AS EXACT GROUND TRUTHA code-grounded audit of 15,556 CVEs, against the single label triage tools trustWhat automated triage reads the label asexact, precise, 100%49.7%31.37%15.3%81.07% at least a defensible readingexact matchdefensible alternativetool undetermined3.63% likely error, and risingOnly the first slice is exact. Reading the label as precise treats the whole bar as that slice.
Figures from arXiv:2608.21977, a code-grounded audit of 15,556 open-source CVEs (2017 to 2026). The four parts are the paper’s: exact match 49.70%, overlap or defensible alternative 31.37%, evidence-inconsistent likely error 3.63%, and 15.30% the auditing tool could not resolve. The point is not that half are wrong, it is that a defensible classification is being consumed as a precise fact.
The four parts are the paper's own classification of 15,556 audited CVEs. Automated triage reads the label as the leftmost slice; the audit found the leftmost slice is under half.

Of the labels that were not exact, most were not wrong. 31.37% were a defensible alternative under a taxonomy that genuinely permits more than one reading of the same bug, and only 3.63% were evidence-inconsistent likely errors. The remaining 15.30% the auditing tool could not resolve either way. Put the defensible readings together with the exact ones and 81.07% of labels are at least defensible.

49.70%

exactly match the code

The CWE the code-grounded audit would assign, matched exactly.

81.07%

at least defensible

Exact, or a defensible alternative under taxonomy ambiguity.

3.63%

likely errors, and rising

Evidence-inconsistent labels. The rate has grown from 1 to 3% in 2017 to 3 to 6% by 2026.

15,556

CVEs audited

Open-source CVEs disclosed 2017 to 2026, checked against code.

Figures from arXiv:2608.21977, a code-grounded audit of 15,556 open-source CVEs, 2017 to 2026.

So the CWE label is not a lie. It is a defensible classification presented as a precise fact, and the failure is downstream: a pipeline that branches on the label as if it were exact is treating a one-in-two exact signal as ground truth. That is a different problem from "the data is wrong", and it needs a different fix.

The strongest signal of quality is who assigned it

The most useful finding for anyone running a programme is not the headline rate, it is that reliability varies sharply by the organisation that assigned the label, and that this is knowable from the record itself.

Exact-match rate by assigning organisation (CNA)

Assigning organisation (CNA)Exact-match rateWhat it tells you
Wordfence83.54%A narrowly scoped specialist assigner is far more exact
Check Point61.90%Above the field, still well short of precise
MITRE48.57%One of the highest-volume assigners, around the average
GitHub45.85%The highest-volume assigner, below the average
Selected CNAs from arXiv:2608.21977. Exact-match rates span roughly 70 percentage points across assigners; the paper names the assigning CNA as the strongest metadata-level signal of label quality.

Read that as a control you already have. The CNA is on every record, and it predicts label quality better than anything in the label itself. A triage pipeline that trusts a Wordfence-assigned CWE and treats a high-volume general assigner's CWE as a hint, not a fact, is weighting the evidence the way the data supports. Almost none do.

Six ways a label goes wrong

The mislabels are not random noise either. From 434 manually confirmed errors, the paper names six recurring patterns, and the largest is the one that matters most operationally.

How confirmed mislabels break down

Consequence named, not root cause23.1%
Wrong sub-type within the family21.3%
Injection sink or interpreter confused19.5%
Access-control and identity conflated15.3%
Discouraged or wrong-branch label10.3%
Multiple CWEs piled onto one CVE7.8%
Share of 434 manually confirmed mislabels, arXiv:2608.21977. The categories are the paper's.

The top pattern, labelling the consequence rather than the root cause, is the one that quietly breaks remediation.

The same story this site keeps telling

This is not a story about NVD being careless. It is the same shape this site keeps finding, now in the metadata that drives vulnerability management: an accurate-looking artefact that answers a narrower question than the buyer assumes.

A CWE label truthfully records one defensible reading of a bug. Read as "the exact weakness type, precisely", it is right about half the time. That is the identical failure as the OSINT feed that catalogues disclosures and is bought as early warning, the model API that returns the same shape at a lower precision, and the two resellers that turn out to be one backend. In each case the artefact is honest and the automation on top of it assumed a precision the artefact never claimed.

What to do with this

Take this with you

For anyone whose tooling branches on CWE

  • Stop treating the CWE as exact. It is a defensible classification, exact about half the time. Use it to group and prioritise, not as the sole key for an automated remediation branch.
  • Weight by the assigning CNA. It is on every record and predicts label quality better than the label does. A specialist assigner earns more trust than a high-volume general one; the field tells you which.
  • Pin remediation to root cause, not the label. The most common error names the consequence, so a fix keyed to the CWE can address the symptom. Confirm the underlying weakness from the advisory or the patch before you act.
  • Do not chain models on the label. If an LLM or a rule reads the CWE and another system acts on that reading, you have stacked a one-in-two signal under an automated decision. Keep a human or a code-grounded check in that loop.
  • Treat recent labels with more caution. Evidence-inconsistent labels have risen over time, and the 2024 to 2026 cohort accounts for more than 40% of them. The newest CVEs, the ones you are triaging today, are the least settled.

The position

The instinct on reading "half of NVD's CWE labels are not exact" is to distrust NVD, and that instinct is wrong. The taxonomy is genuinely ambiguous, four in five labels are defensible, and a specialist assigner is right most of the time. The defect is not in the record. It is in the layer of automation that reads a careful, hedged, human classification as a precise machine fact and never looks again.

The fix is not better labels, it is honest consumption of the labels there are. Weight the CNA, pin the fix to the root cause, and keep a code-grounded check between the label and any action it triggers. The single most useful sentence in the paper is the one nobody's pipeline implements: the strongest signal of whether a CWE label is right is who assigned it, and that is sitting on the record you already have.

Sources

  1. PrimaryHow Reliable Are NVD CWE Labels? A Large-Scale Semantic Audit with Seclometry, Nong et al., 25 August 2026arXivaccessed 2026-08-26
  2. PrimaryCommon Weakness Enumeration (CWE)MITREaccessed 2026-08-26

Share this briefing

Know someone who owns this problem? Send it to them.

Related briefings

The briefing, in your inbox

Practitioner analysis of cyber and AI security news. No vendor noise.

One email per briefing. Unsubscribe any time.