Friday, April 4, 2025

It’s time to start discussing the Global Vulnerability Database

For a year and a half, I’ve been talking about what I call the Global Vulnerability Database (GVD) – which isn’t a single database at all, but rather a federation of databases behind a single intelligent front end. At first, I just brought it up as one of those things that will take many years to come to fruition, but which is nice to think about, anyway.

That changed in February 2024, when the National Vulnerability Database (NVD) greatly slowed down performance of their most important function: adding machine-readable software identifiers called CPE names to new CVE records. Like a lot of people, I initially believed the NVD’s assertions that they were getting back on track and would soon resolve their backlog of over 30,000 CVE records that were “unenriched” – i.e., that did not include a CPE name(s) for the vulnerable product(s). This deficiency renders those records invisible to automated searches (such as from the NVD’s command line).

However, those assertions have all fallen by the wayside. On March 19, the NVD announced, “…we are working to increase efficiency by improving our internal processes, and we are exploring the use of machine learning to automate certain processing tasks.” In other words, they’re no longer even pretending they’ll eliminate their backlog, or even stop its growth, anytime soon.

Meanwhile, the percentage of CVE records the NVD is enriching[i] in a timely fashion has probably fallen to around 25% from 45%, where it was at the end of 2024. Moreover, this week I started to hear complaints about “503” (“service unavailable”) errors when people tried to reach the NVD (I experienced six of those in one day, vs. only one success). It’s no exaggeration to say that the NVD may be falling apart in real time.

There are two problems here, with separate causes. The problem with the lack of CPE names is in some way due to cuts in funding by another agency. NIST (the NVD’s parent organization) checked between the couch cushions and found them some extra cash last year, yet if anything the problem has gotten worse since they did that. The solution to the CPE problem (although it will take a couple of years before it’s fully in place) is to make it possible for CVE records to include purl identifiers, not just CPEs. That solution doesn’t depend on the NVD, but rather on CVE.org. I trust that organization much more than I do the NVD, although I’m worried about what might happen to them as well, given the current political climate.

However, the 503 errors aren’t primarily due to funding. They’re due to the NVD having a decrepit infrastructure with at least some non-redundant systems, as well as programs written in an old language that even I – old as I am – had never heard of. The only good solution to this problem is to bring up a huge dumpster to the building and gently deposit all their current servers, etc. in said dumpster. The NVD doesn’t have to worry about backing up their data, since the entire NVD can be downloaded in about ten minutes (I’m not kidding); thousands of complete backups of the NVD are made every day.

The only solution to the NVD’s problems is to replace it. But simply modernizing the hardware and software isn’t enough. Instead, we (meaning the worldwide software security industry) need to get together to decide what objectives we need to achieve in replacing the NVD. Here are my ideas on that topic:

1.      Access to the GVD needs to be free, at least for casual users. Users that regularly download large amounts of data using an API might need to be charged, although doing that could possibly cause more problems than it would solve.

2.      The GVD must be truly global and not under the control of any one government. The budgets and priorities of government agencies often fluctuate due to political decisions, with the needs of their users - their real “customers” – taking a distant second place.

3.      The GVD should be run by a global nonprofit set up something like the Internet Assigned Numbers Authority. IANA runs DNS and assigns IP addresses worldwide. It performs these tasks smoothly and efficiently. The fact that most of us use DNS hundreds (or even thousands) of times per day without even thinking about it shows this model can work well.

4.      Support for the GVD should come from both governments and private for-profit and nonprofit organizations. Governments that want to participate (and are not considered to pose a security threat to the database or its users) might pay an assessment based on GDP, population, etc.

5.      The GVD should be as comprehensive as possible. That is, it should include all major types of vulnerabilities (CVE, OSV, GHSA, etc.), as well as all major software identifiers (mainly CPE and purl). Achieving this goal will require creation of a federation of individual databases that already exist.

6.      This federation will be enabled by an “intelligent front end”. This will analyze all requests and interpret them for one or more databases. For example, a request for vulnerabilities that affect an open source product designated with a purl identifier could be routed to open source databases that support purl, like OSV, OSS Index, GitHub Security Advisories, etc. The responses might refer to different types of vulnerabilities (e.g., CVE, OSV, and ICSA), but they would all be based on purl.

7.      The individual databases will continue to be accessible directly – i.e., not going through the intelligent front end.

8.      There will need to be some mechanism by which vulnerability databases that are currently “for charge” will be able to charge for their services, perhaps on a per-transaction basis. Of course, the user will need to be warned when their search is about to be routed to a for-charge database.

9.      Responses will usually be routed back to the user without change, since it is usually impossible to “harmonize” different types of vulnerabilities. The exception to this rule is cases in which the person reporting the vulnerability (often a CVE Numbering Authority) has assigned it two identifiers, e.g. a CVE and an ICSA.

10.   The NVD does not need to go away, since it is the primary “custodian” of CVE records that include CPE identifiers for vulnerable products. Even when the NVD supports purl, many (and initially most) CNAs will continue to include CPE names in their new CVE records.

11.   CVE.org will continue to operate as a separate organization, since CVE records are widely used worldwide, not just in the NVD. However, it would be better to move CVE.org to an international organization, perhaps another IANA division that is separate from the GVD. To give CNAs more incentive to include items like CVSS scores and purl/CPE identifiers in their CVE records, it would be better if the CNAs could be paid in some way.

We might start having discussions of this in the bi-weekly SBOM Forum meetings, including today at 1 AM Eastern Time. If you would like to join us, please send me an email. 

f 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.

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] When looking at the NVD’s statistics, it’s important to keep in mind that they have changed their definition of “enrichment” of a CVE record. It used to include adding a CPE name, as well as other items like CVSS score. However, they seem to have conveniently dropped the requirement for a CPE name to be added, for it to be enrichment. While it’s good to have a CVSS score as well, CPE (or hopefully purl in the not-so-distant future) is by far the most important element that needs to be added to a CVE record.