Skip to content

Conversation

@fahedouch
Copy link

I am translating @stevespringett 's feedback on the CycloneDX VEX specification into the code.

Should ratings be normative inputs for prioritization in VEX consumers?

Yes, they should be. It is widely known that the NVD has historically overrated vulnerabilities (on purpose). So the ratings from the NVD and those from the manufactures are often different. CycloneDX can convey this information which can aid in prioritization.

fixes #719

@fahedouch fahedouch force-pushed the vex-ratings-actionable-cyclonedx-conumers branch from b2b999a to 93da22f Compare November 15, 2025 11:11
@fahedouch
Copy link
Author

@stevespringett please take a look!

@stevespringett
Copy link
Member

I'm fine with these changes. @jkowalleck thoughts? We'll also need to make the same changes to the XML and protobuf schemas as well.

Additionally, you can remove the changes to the vulnerability extension. That hasn't been supported for many years.

@fahedouch fahedouch force-pushed the vex-ratings-actionable-cyclonedx-conumers branch 2 times, most recently from 688eef3 to da03911 Compare December 26, 2025 21:27
@fahedouch
Copy link
Author

@stevespringett thank you for your feedback. fixed.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates the documentation for the ratings field in vulnerability objects across CycloneDX schema files to provide normative guidance on their usage in VEX (Vulnerability Exploitability eXchange) contexts. Based on feedback from issue #719, the changes clarify that vulnerability ratings should be treated as actionable inputs for prioritization decisions by VEX consumers.

Changes:

  • Adds RFC 2119 normative language (SHOULD/SHOULD NOT) to the ratings field documentation across schema versions 1.6 and 1.7
  • Updates documentation in XSD, JSON Schema, and Protocol Buffer formats for consistency
  • Emphasizes that ratings from different sources may differ and aid in vulnerability prioritization

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
schema/bom-1.7.xsd Updated vulnerability ratings documentation to include guidance for VEX consumers
schema/bom-1.7.schema.json Updated vulnerability ratings description with normative language
schema/bom-1.7.proto Updated ratings comment to match normative guidance
schema/bom-1.6.xsd Updated vulnerability ratings documentation for version 1.6 compatibility
schema/bom-1.6.schema.json Updated vulnerability ratings description in JSON schema
schema/bom-1.6.proto Updated ratings comment in Protocol Buffer schema

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<xs:element name="ratings" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation xml:lang="en">List of vulnerability ratings.</xs:documentation>
<xs:documentation xml:lang="en">List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.</xs:documentation>
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation contains a double negative construction ('SHOULD NOT ignore') which could be simplified for clarity. Consider revising to 'Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.' This maintains the normative intent while improving readability.

Suggested change
<xs:documentation xml:lang="en">List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.</xs:documentation>
<xs:documentation xml:lang="en">List of vulnerability ratings. Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.</xs:documentation>

Copilot uses AI. Check for mistakes.
<xs:element name="ratings" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation xml:lang="en">List of vulnerability ratings.</xs:documentation>
<xs:documentation xml:lang="en">List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.</xs:documentation>
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation contains a double negative construction ('SHOULD NOT ignore') which could be simplified for clarity. Consider revising to 'Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.' This maintains the normative intent while improving readability.

Copilot uses AI. Check for mistakes.
// Zero or more pointers to vulnerabilities that are the equivalent of the vulnerability specified. Oftentimes, the same vulnerability may exist in multiple sources of vulnerability intelligence but have different identifiers. References provide a way to correlate vulnerabilities across multiple sources of vulnerability intelligence.
repeated VulnerabilityReference references = 4;
// List of vulnerability ratings
// List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation contains a double negative construction ('SHOULD NOT ignore') which could be simplified for clarity. Consider revising to 'Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.' This maintains the normative intent while improving readability.

Suggested change
// List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.
// List of vulnerability ratings. Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.

Copilot uses AI. Check for mistakes.
// Zero or more pointers to vulnerabilities that are the equivalent of the vulnerability specified. Oftentimes, the same vulnerability may exist in multiple sources of vulnerability intelligence but have different identifiers. References provide a way to correlate vulnerabilities across multiple sources of vulnerability intelligence.
repeated VulnerabilityReference references = 4;
// List of vulnerability ratings
// List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation contains a double negative construction ('SHOULD NOT ignore') which could be simplified for clarity. Consider revising to 'Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.' This maintains the normative intent while improving readability.

Suggested change
// List of vulnerability ratings. Consumers SHOULD use ratings and SHOULD NOT ignore them; source ratings may differ and aid prioritization.
// List of vulnerability ratings. Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and provide valuable context.

Copilot uses AI. Check for mistakes.
@fahedouch
Copy link
Author

fahedouch commented Jan 17, 2026

thanks @copilot for review. I reflected @copilot comments.

new phrase is:

List of vulnerability ratings. Consumers SHOULD consider ratings in prioritization decisions; source ratings may differ and aid prioritization.

aid prioritization is preferable to provide valuable context for the following reasons:

It's more actionable - developers understand exactly why it matters
It's more transparent - if the true purpose is to assist with prioritization, it should be stated explicitly
It reinforces the message - it maintains consistency with "in prioritization decisions" in the first clause

@jkowalleck @stevespringett PTAL

@fahedouch fahedouch force-pushed the vex-ratings-actionable-cyclonedx-conumers branch from b5fbd0f to a075955 Compare January 17, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Make VEX Ratings Actionable in CycloneDX Consumers

2 participants