Chris Hughes’ June 24 post
pointed out what a lot of people involved in vulnerability management already
knew: The number of new CVEs is rapidly growing, along with the cost of tracking
and patching those CVEs. Those increased costs include both money and staff
time, but also the huge costs due to having to divert management attention from
activities that will grow the business to tedious vulnerability management tasks
that don’t grow anything except aggravation.
The numbers behind Chris’s argument all came from a paper
that was recently put out by Chainguard,
a company that has quickly become one of the two or three thought leaders in
the field of software security. I paid close attention to the post, primarily
because I think highly of Chainguard. I consider anything they feel strongly
about to be worthy of an investment of my time – and they certainly feel this
is an important topic. I read both Chris’s summary of Chainguard’s paper and the
paper itself.
The primary takeaway from both Chris’ post and the
Chainguard paper was that organizations that decide to undertake vulnerability
management on their own are making a big mistake. Instead, those organizations
should seriously consider outsourcing vulnerability management to a services vendor
that specializes in vulnerability management. They should do this because such
a vendor can manage their vulnerabilities much more efficiently than any single
software end user or software developer organization. Of course, the only vendor
mentioned in the paper is Chainguard itself.
I have no objection to a company putting out a paper that
describes a problem that is likely to affect many of the people that read the paper,
and then using that description as a lead-in to a sales pitch for their
services. In fact, I doubt there are many technology companies that haven’t
done exactly this. However, I think Chris could have mentioned that there are
other ways to beat the vulnerability management rat race, other than just
suggesting that readers outsource the whole problem to Chainguard or any other services
vendor.
I say this because I realized almost three years ago that vulnerability
management can never really be successful unless it can be fully automated. At
the same time, I realized - when the SBOM Forum (now the OWASP SBOM Forum) published
a white
paper titled “A Proposal to Operationalize Component Identification for
Vulnerability Management” - that various problems, like those described in
pages 4-6 of the paper, have made a fully automated (or “operationalized”)
vulnerability management process all but impossible today. Until those problems
are addressed, vulnerability management will always be a slow, “manual” process
– and outsourcing it may well be the only good solution to the problem.
The problems pointed out in the paper were all related to
the fact that the only software identifier utilized in the National
Vulnerability Database (NVD), “Common Platform Enumeration” or CPE, is inefficient
in many ways. In the paper, we recommended that both the CVE Program (which is
run by the MITRE Corporation, overseen by the Department of Homeland Security) and
the NVD (which is run by NIST, part of the Commerce Department) start moving
toward implementing use of the purl
(product URL) identifier, along with CPE.
I’m pleased to report that the CVE Program is now laying the
groundwork for implementing purl along with CPE, although the process may not
be finished until the end of 2025 or even later than that. However, I’m not
pleased to report something that I’ve written about a lot: starting in February
2024, the NVD greatly curtailed their performance of a vital task that they
have performed for more than a decade. In fact, the NVD has insisted that only
they can perform this task, namely identifying vulnerable products in CVE
records by creating new CPE names for them.
Since CVE records usually just include a textual description
of the product(s) affected by the vulnerability, if the record does not also
contain a machine-readable CPE name to identify the product, this means that an
automated search of the NVD – e.g., using the NVD’s search bar – will not
identify the product(s) affected by a CVE. The user (or a service provider
working for them) may need to conduct “manual” text searches to learn if a
product they use is affected by any recently identified CVEs. Of course, given
that over 50,000 new CVEs are being identified each year and that number is itself
growing rapidly, any non-automated vulnerability management process will be
unsustainable, even if it’s outsourced.
How bad is this problem? According to Andrey Lukashenkov of
Vulners and Bruce Lowenthal of Oracle, in 2024 fewer than half of CVE records
had CPEs assigned, while in 2025 those numbers have gotten even worse. In fact,
Bruce says that since last November, the NVD has completely stopped assigning
CPEs to newly identified CVE records within a few days, as they almost always
did in the past. Instead, they are now assigning CPEs exclusively to records
that are more than a month old.
Bruce points out that this is an almost totally useless
exercise, since software suppliers are much more likely to have patched older
vulnerabilities; if the software supplier releases new patches within a few
weeks (which the best ones do, whenever possible) and the user applies those
patches quickly, most CVE records that are more than a month old are likely to
be irrelevant. In other words, the NVD now seems to be waiting until attaching
a CPE to a CVE record won’t be very helpful at all, rather than making the extra
effort required to create the new CPE shortly after the CVE record was
introduced, as they almost always did before February 2024.
Bruce also points out that in June 2025, CVE.org (where CVE
records originate) has included the vendor name in about 94% of CVE records,
whereas the NVD has only included vendors in about 27% of those records; since
the beginning of 2025, the NVD’s record has been similar in every month. It’s
no wonder that NIST recently announced an audit of the NVD; perhaps they can
figure out what is going on, since I certainly can’t (and don’t tell me the NVD’s
problems are due to a lack of funds. They announced last year that they finally
had enough funds, but the problems have literally gotten worse since then, not
better).
The bottom line is that, through almost all of 2024 and so
far in 2025, any automated search of the NVD for vulnerabilities that apply to
a software product has likely yielded fewer than half of the vulnerabilities that
have been recently identified in the product. This means that users of those
products may never know all the vulnerabilities to which their product is
exposed, until it is too late. Of course, this is not a sustainable situation.
Introducing purl identifiers into CVE records (which will
need to be done by the CVE Numbering Authorities – CNAs – that create the
records) will help address this situation for open source software (as
described in the 2022 SBOM Forum white paper linked earlier). However, since currently
purl doesn’t address software not delivered through package managers (which
includes almost all commercial software), a new procedure (or purl “type”) will
need to be developed to identify
commercial software products.
The OWASP SBOM Forum would like to start working on this
problem soon, in conjunction with commercial software developers, as well as
any other concerned parties. If your organization would consider donating to
OWASP to support this effort (OWASP is a 501(c)(3) nonprofit organization),
please email me.
Since CPE is now the only identifier for commercial software
products, and since most newer CVE records do not contain any CPE at all, this
means vulnerability management for commercial software has turned into an
oxymoron – it is literally becoming impossible. At a minimum, a fully
implemented solution to this problem is two years away, and perhaps longer than
that. However, the clock won’t even start running on a solution until we start
developing one; it is that simple.
Therefore, while I think all organizations that are
concerned about vulnerabilities in the software they utilize or develop should
consider outsourcing their vulnerability management work to a company like
Chainguard as a short term solution, in no way should this be considered a
final solution to the CVE rat race. The final solution is to replace the NVD
with a truly robust Global
Vulnerability Database that will support multiple types of software
identifiers (especially CPE and purl), as well as multiple vulnerability
identifiers (including CVE, OSV, GitHub Security Advisories, etc.).
In other words, vulnerability management needs to become a
rigorous, fully automated process. It shouldn’t require an expert third party
to fill in the automation gaps. However, since there is always more that can be
done, even when today’s vulnerability management is fully automated, there will
still be a need for third parties like Chainguard to push the boundaries beyond
what is possible through automation today. I hope they continue to do that.
My blog is more popular than
ever, but I need more than popularity to keep it going. I’ve often been told
that I should either accept advertising or charge a subscription fee or both.
However, neither of those options appeals to me. It would be great if everyone
who appreciates my posts could donate a $20-$25 “subscription fee” once a year (of course, I
welcome larger amounts as well!). Will you do that today?
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.
No comments:
Post a Comment