As any reader of this blog knows, the National Vulnerability
Database (NVD) fell on its face last year. Starting on February 12, the NVD drastically
reduced the number of machine-readable “CPE names” it added to CVE Records
(which originate in CVE.org, part of DHS). It ended the year having added a CPE
name to fewer
than 45% of the approximately 39,000 new CVE Records added in 2024. In
previous years, the NVD added a CPE to virtually every new CVE Record, usually
within a day or two of receiving it.
Why is this important? Because just learning that a newly
discovered vulnerability has been found in one or more of the millions of
software products used today doesn’t do you a lot of good if you don’t know which
product it affects. When the CVE Record is created by a CNA,
it includes a textual description of the product.
While that has some value, it won’t be picked up by an
automated database search, which won’t display any CVE Record that doesn’t include
a CPE name for the product being searched for. In other words, to learn for certain
which (if any) vulnerabilities identified in 2024 or so far in 2025 are found
in a software product you use, you would need to “manually” read the text in
all 42,000-odd CVE Records that were added in 2024 or 2025. This is why vulnerability
management requires automation. Since last February, truly automated
vulnerability management has not been possible, at least not in the NVD.
But 2024 is (thankfully) behind us; how is the NVD doing in
2025? During the OWASP SBOM Forum’s meeting last Friday, Bruce Lowenthal,
Senior Director of Product Security of Oracle, updated the group on this
question by putting this information in the chat:
1.
“Only 27% of CVEs published in December 2024
have CPE assignments (in the NVD).”
2.
“Only 8% of CVEs published in January have CPE
assignments in NVD.”
The first item isn’t terribly surprising, since we already knew
the NVD almost completely stopped assigning CPE names for a couple of weeks in
December. However, the second item was quite disappointing. There was a lot of
hope (although not from me) that the NVD would not only start assigning a CPE to
every CVE Record again soon, but also start working down the backlog. Instead,
after adding over 2,000 to the backlog of CVE records without a CPE assigned in
December, the NVD has surpassed that record by adding over 2,700 to the backlog
this month. I suppose that’s progress, but it’s certainly not in the right
direction.
In summary, in order to dig itself out of the hole it’s in, the
NVD needs to
1. Stop adding to the CPE backlog, by assigning a
CPE name to each of the over 3,000 monthly new CVE Records that are likely to
be created this year, and
2.
Start reducing the backlog by assigning additional
CPEs at a rate that will reduce the backlog to zero by the end of 2025. Since I
believe the backlog is around 23,000 as of today and since there are 11 months
left in the year, this means the NVD will need to assign an additional 2,000
CPEs every month this year, for a total of 5,000 every month.[i]
If the NVD does this, the backlog will be zero – and no longer growing – at the
end of 2025. Of course, at the moment I’d assign the statement that this could
actually happen to the realm of fantasy.
While the CPE identifier has always
had a lot of problems,
the problem I just described – that more than half of CVE records since last
February contain no CPE name at all - is far worse than the others. A CVE
Record that contains no CPE name is completely invisible to an automated search.
This raises the question whether it’s worthwhile to perform any vulnerability
search of the NVD today, since doing so may leave the user with a false sense
of security.
Is there a solution to this problem?
Yes, there is. What if I told you there is a software identifier that came from
literally nowhere less than ten years ago to being today by far the dominant identifier
in the open source world? A software identifier that’s used over 20 million
times every day, by just one tool, to look up an open source vulnerability
in the OSS Index open source vulnerability database?
Moreover, this identifier – called
purl
- doesn’t need to be “created” by any third party. As long as a purl is
included in a CVE record, a user should always be able to write down a purl
that will match the one in the record, utilizing a few pieces of information they
should already have at hand or can readily look up (for open source software
products, these are the package manager name, the name of the product in the
package manager, and the version number in the package manager).
In other words, purl can be at
least a co-equal identifier to CPE in the NVD and other vulnerability databases
that are based on CVE. However, there are two important problems that need to
be addressed before this can happen:
1.
CVE Records need to
include purls, and the CVE Numbering Authorities (CNAs) need to see the value of
including them in the records.
2.
Purl today doesn’t identify
commercial software; it just identifies open source software. Fortunately, there
is a workable proposal
for fixing that problem.
I’m pleased to report that work on fixing the first problem will start soon, while work on the second problem will almost certainly start within six months. If you would like to get involved in one or both of these efforts, please let me know.
Any opinions expressed in this
blog post are strictly mine and are not necessarily shared by any of the
clients of Tom Alrich LLC. If you would like to comment on what you have
read here, I would love to hear from you. Please email me at tom@tomalrich.com. Also email me If you would like to participate in the
OWASP SBOM Forum or donate to it (through a directed donation to OWASP, a 501(c)(3)
nonprofit organization).
My book "Introduction to SBOM and VEX" is available in paperback and Kindle versions! For background on the book and the link to order it, see this post.
[i] Even this estimate is too low, since it doesn’t allow for any growth in the number of new CVE records in 2025 vs. 2024. That number increased by 11,000 in 2024 vs. 2023. It might not increase by that amount this year, but it would be naïve to believe it won’t increase at all this year.