Johanna,
I'd genuinely like to see more of this project as it develops. The intersection of AI assisted analysis and SBOM/VEX workflows is an area worth exploring, and I appreciate the effort that's gone into the PoC. One organization I know spends roughly $500K USD per VEX document for a product version. The analysis required is not something that I’ve seen existing tools be good at. AI doesn’t have a large enough context window, and SAST just falls short everywhere.
A few thoughts to share with the Leaders list as this moves forward.
On terminology, what the PoC generates looks closer to VDR than VEX. The distinction matters because VEX is a negative security advisory requiring specific analysis and justifications, not a version-range check against a CVE, even for components not included in a given product. I wrote about this here for anyone who wants background:
https://owasp.org/blog/2023/02/07/vdr-vex-comparison.
The deeper challenge is that VEX determinations are contextual to the consuming product. Whether a CVE matters depends on reachability, call paths, configuration, existing controls, and how the library composes with the rest of the application. This is why existing OWASP guidance, including the Threat Modeling Cheat Sheet and ASVS, emphasizes multi-step attack analysis and chained vulnerabilities over component-level views. A shared database of generic VEX assertions would need to account for this, or it risks giving consumers determinations that were never valid for their product and conflicting with existing OWASP guidance.
That said, I think there's a genuinely valuable research direction here that could give the project a focused mission: identifying the narrow class of libraries where a VEX assertion holds regardless of consuming context. These cases do exist, for example, a CVE affecting code that was never present in a given version, or a dependency removed entirely. Scoping the project to build that high-confidence subset first, with clear inclusion criteria, would yield a defensible and useful result. It would also naturally separate the generation tooling from the shared database question, which I think benefits from its own discussion with the CycloneDX, Dependency-Track, and SCVS communities.
Happy to talk through any of this.