STP
SBOM Observer/

Vulnerability Management

Using SBOMs and VEX for rapid impact assessment and prioritization

The traditional vulnerability management workflow breaks down in modern software ecosystems. Thousands of CVEs published annually, complex dependency trees with hundreds of components, and compressed remediation timelines demand automation that manual tracking cannot provide.

SBOMs and VEX transform this workflow from reactive scrambling to proactive management, enabling organizations to answer "are we affected?" in minutes rather than days.

The Traditional Problem

When CVE-2021-44228 (Log4j) was disclosed, organizations worldwide faced urgent questions: Do we use Log4j? Which versions? In which systems? What's our exposure?

Without SBOMs, answering required:

  • Manual repository searches across hundreds of codebases
  • Build artifact inspection for compiled applications
  • Vendor inquiries for third-party software
  • Container scanning for deployed systems
  • Emergency meetings as each new affected system was discovered

Days or weeks passed before organizations achieved comprehensive answers. Meanwhile, exploitation began within hours of disclosure. The vulnerability response timeline—detect, assess, remediate—was measured in days when attackers operated in hours.

The SBOM-Enabled Workflow

With comprehensive SBOM coverage, the same scenario plays out dramatically differently:

Hour 0: CVE published identifying vulnerable component and affected versions.

Hour 1: Automated monitoring system detects CVE publication, queries SBOM repository for affected component identifier (e.g., pkg:maven/org.apache.logging.log4j/log4j-core).

Hour 2: Query returns list of affected products, versions, and deployment locations. Security team has complete impact assessment without manual investigation.

Hour 3: VEX documents published by vendors provide exploitability context. Some products use vulnerable versions but aren't actually exploitable due to configuration or usage patterns.

Hour 4: Prioritization complete. Remediation begins on genuinely at-risk systems while lower-priority or non-exploitable systems are scheduled appropriately.

The hours-to-assessment versus days-to-understanding gap represents the strategic value SBOMs deliver for vulnerability management.

Practical Implementation

Phase 1: SBOM Repository Setup

Build a queryable repository of SBOMs for all deployed software. This repository becomes your component inventory, enabling rapid correlation.

For producer organizations: maintain SBOMs for all released software versions currently deployed anywhere. Retirement from sale doesn't mean removal from the repository—deployed systems still need vulnerability monitoring.

For consumer organizations: collect SBOMs from all suppliers for deployed products. Store alongside internal SBOMs for comprehensive coverage. Missing supplier SBOMs create blind spots requiring manual investigation during incidents.

The repository needs query capabilities: "which products contain component X" must return results in seconds, not hours. Simple file storage suffices for small portfolios. Dedicated SBOM management tools (Dependency-Track, commercial platforms) scale better for hundreds of products.

Phase 2: Vulnerability Feed Integration

Connect vulnerability data sources to SBOM repository. As CVEs publish, automated correlation identifies affected software.

Multiple feed sources improve coverage:

  • NVD (National Vulnerability Database) for broad CVE coverage
  • Vendor-specific advisories for products you heavily use
  • Language ecosystem advisories (npm, PyPI, RubyGems) for ecosystem-specific disclosures
  • OSV (Open Source Vulnerabilities) database for aggregated open source intelligence

Correlation requires matching CVE component identifiers to SBOM component identifiers. PURLs and CPEs enable this matching—why these identifier types matter so much in SBOM quality.

Phase 3: VEX Integration

Beyond identifying potentially affected systems, consume VEX documents providing exploitability context.

Vendor VEX documents reduce false positives. A product listing vulnerable component version might receive vendor VEX stating "not affected" with justification like "vulnerable code path not utilized" or "mitigations in place." This contextualizes vulnerability significance.

Internal VEX documents track your own analysis for systems you develop. When determining whether your product is affected by a CVE, document conclusions in VEX format. Future team members benefit from recorded analysis rather than re-investigating.

VEX updates drive prioritization. Initial "under investigation" status triggers awareness. "Affected" status escalates priority. "Fixed" status enables verification that deployed versions include patches.

Phase 4: Workflow Automation

Connect SBOM/VEX data to existing security workflows and tools.

Issue tracker integration automatically creates tickets for affected systems. Jira, ServiceNow, or similar systems receive vulnerability records pre-populated with impact data from SBOM correlation.

Alert system integration notifies responsible teams. Different products have different owners—route alerts appropriately rather than blasting everyone for every vulnerability.

Patch management integration correlates available fixes with deployed vulnerable versions. When vendor releases patched version, automatically identify which deployments need updates.

Response Time Improvements

Measure vulnerability management improvements quantitatively:

Time to impact assessment: How long from CVE disclosure until comprehensive "are we affected?" answer?

  • Without SBOMs: 3-7 days typically, up to weeks for complex portfolios
  • With SBOMs: Minutes to hours, depending on automation level

False positive rate: How often do vulnerability scanners flag components that don't actually create exploitable vulnerabilities?

  • Without VEX: 30-50% false positives common (scanner flags component presence, not actual exploitability)
  • With VEX: less than 10% false positives (vendor context eliminates most non-exploitable findings)

Coverage confidence: How certain are you that impact assessment found all affected systems?

  • Without SBOMs: Low confidence—manual searches miss systems, undocumented dependencies escape notice
  • With SBOMs: High confidence—systematic inventory reduces blind spots significantly

VEX Status Justifications

Understanding VEX status justifications enables better prioritization:

vulnerable_code_not_present: Component listed but vulnerable code paths weren't included in build. Example: vulnerability in Windows-specific code within cross-platform library, but your Linux build excludes Windows code.

vulnerable_code_not_in_execute_path: Vulnerable code present but not reachable through normal operation. Example: administrative interface vulnerability where your deployment disables admin interface entirely.

inline_mitigations_already_exist: Product includes protective measures preventing exploitation. Example: input validation or sandboxing that blocks attack vectors targeting vulnerable component.

requires_configuration: Vulnerability exploitable only with specific configurations, and your deployment uses safe configuration. Example: vulnerability in optional feature that your configuration disables.

requires_dependency: Vulnerability requires additional component presence for exploitation, and that component is absent. Example: exploit requires componentA + componentB, but your product uses only componentA.

requires_environment: Vulnerability requires specific runtime environment absent in your deployment. Example: container breakout vulnerability, but your deployment doesn't use containers.

These justifications explain why components showing vulnerabilities in scanners may not actually be exploitable—critical context for prioritization.

Measuring Success

Track vulnerability management KPIs to demonstrate SBOM value:

Mean Time to Impact Assessment (MTTIA): Hours from CVE disclosure to complete understanding of organizational exposure. Target: under 4 hours for critical vulnerabilities.

Vulnerability Closure Rate: Percentage of identified vulnerabilities remediated within SLA. Should improve with better prioritization from VEX context.

False Positive Reduction: Decreased time wasted investigating non-exploitable findings. Track hours saved.

Coverage Percentage: Percentage of deployed software with SBOM-enabled vulnerability monitoring. Track growth toward 100%.

Common Pitfalls

Pitfall 1: Incomplete SBOM coverage Partial SBOM coverage creates dangerous gaps. Organizations believe they have comprehensive visibility when significant systems lack SBOMs. During incidents, those gaps surface as "unknown" affected systems discovered late.

Solution: Prioritize breadth over depth initially. Better to have 80% complete SBOMs for all systems than perfect SBOMs for half your systems. Cover portfolio broadly, then improve quality.

Pitfall 2: Stale SBOMs Using outdated SBOMs for current deployments produces incorrect impact assessments. SBOM says version X is deployed but system actually runs version Y due to updates not reflected in repository.

Solution: Automate SBOM updates tied to deployment processes. When systems update, SBOMs update. Stale SBOMs degrade to uselessness quickly.

Pitfall 3: Ignoring VEX context Treating all vulnerable component findings equally leads to resource waste on non-exploitable issues while missing genuinely critical exposures.

Solution: Incorporate VEX data into prioritization. "Component present + exploitable per VEX" drives urgency. "Component present + not exploitable per VEX" enables deprioritization.

Pitfall 4: Manual correlation Attempting manual vulnerability correlation against SBOMs doesn't scale. Hundreds of CVEs monthly times hundreds of components equals unsustainable manual effort.

Solution: Automate correlation from day one. Even simple scripts querying SBOM files beat manual spreadsheet tracking. Invest in proper tools as portfolio grows.

Next Steps

On this page