Skip to content

OWASP scores should be per-component, not global, to support contextual VEX ratings #5796

@fahedouch

Description

@fahedouch

Current Behavior

After merging CycloneDX/specification#722, I'm working on importing OWASP Risk Rating scores from CycloneDX VEX into Dependency-Track.

I've identified an architectural challenge: OWASP scores are currently stored at the Vulnerability level (global), not at the Component level. This seems inconsistent with how VEX Analysis states work, which are stored per component-vulnerability pair.

This means:

  • One CVE has one OWASP score shared across all projects/components
  • Cannot store different OWASP scores for the same vulnerability in different contexts

Proposed Behavior

OWASP scores should be moved to the Analysis level (component-vulnerability scope) to properly support context-aware risk assessments from VEX.

Why this is needed:

OWASP Risk Rating methodology is context-dependent. The same CVE can have different risk scores in different applications based on:

  • System exposure (internet-facing vs internal)
  • Data sensitivity
  • Business criticality
  • Security controls in place

Benefits:

  • ✅ Aligns OWASP scoring with the CycloneDX VEX specification
  • ✅ Enables proper import of tools like VENS that generate contextual OWASP scores per project
  • ✅ Consistent with existing Analysis architecture
  • ✅ Supports context-aware risk assessments per project/component

Checklist

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestp2Non-critical bugs, and features that help organizations to identify and reduce risk

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions