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

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
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.
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 rate | What it tells you |
|---|---|---|
| Wordfence | 83.54% | A narrowly scoped specialist assigner is far more exact |
| Check Point | 61.90% | Above the field, still well short of precise |
| MITRE | 48.57% | One of the highest-volume assigners, around the average |
| GitHub | 45.85% | The highest-volume assigner, below the average |
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
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
- PrimaryHow Reliable Are NVD CWE Labels? A Large-Scale Semantic Audit with Seclometry, Nong et al., 25 August 2026arXivaccessed 2026-08-26
- PrimaryCommon Weakness Enumeration (CWE)MITREaccessed 2026-08-26


