Skip to content

List every VEX file on the CVE Dependencies along with their status#191

Merged
epugh merged 3 commits into
apache:mainfrom
epugh:vex-table-list-all
Jun 21, 2026
Merged

List every VEX file on the CVE Dependencies along with their status#191
epugh merged 3 commits into
apache:mainfrom
epugh:vex-table-list-all

Conversation

@epugh

@epugh epugh commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Turns out there are dependencies that have CVE's that are exploitable in Solr according to the VEX standard, that don't have a Solr specific CVE, or show up in that listing.

This changes the table to showing all VEX entries, regardless of state (exploitable or not), and displays that information as a label:

image

Notice the first two items, they are issues with OpenNLP in Solr 9 branch that I am creating new vex entries for and will open a seperate PR.

epugh and others added 2 commits June 17, 2026 08:24
Show every VEX entry in security-dependency-cves.html regardless of
analysis.state or whether it names vulnerable JARs (previously only
non-exploitable, JAR-bearing entries were listed), and render
analysis.state as a colored cdx-* tag.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@epugh epugh requested review from Copilot and janhoy June 17, 2026 12:38
@epugh

epugh commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

cc @ppkarwasz

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the Solr website’s dependency CVE status page to show more VEX-derived information directly in the table, including the assessed state for each entry.

Changes:

  • Adjusts the dependency CVE table to iterate over all provided VEX entries (no longer filtering out exploitable) and renders the analysis.state as a styled label.
  • Updates the page intro text to reflect that the table includes the assessed state.
  • Changes the Pelican VEX plugin to expose all parsed VEX entries to the dependency CVE table template.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
themes/solr/templates/security-dependency-cves.html Updates copy, expands table iteration, and adds a state label class for VEX analysis state.
plugins/vex/vex.py Changes the VEX context provided to the dependency CVE table to include all VEX entries.
Comments suppressed due to low confidence (1)

themes/solr/templates/security-dependency-cves.html:39

  • Some VEX entries intentionally omit cve (e.g. catch-all dependency notes like velocity-tools/tika-core), which results in v.ids being empty. The table currently renders an empty ID cell in that case; consider rendering an em dash (matching vex.html’s behavior) to avoid blank rows/cells.
        {% for id in v.ids %}
          {% if id.startswith('CVE') %}<a href="https://nvd.nist.gov/vuln/detail/{{ id }}">{{ id }}</a>{% elif id.startswith('GHSA') %}<a href="https://github.com/advisories/{{ id }}">{{ id }}</a>{% else %}{{ id }}{% endif %}
          {%- if not loop.last %}, {% endif %}
        {% endfor %}
      </td>

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

Comment thread plugins/vex/vex.py Outdated
Comment on lines +160 to +162
def generator_initialized(generator):
# The dependency-CVE table (security-dependency-cves.html) lists the entries
# that name vulnerable JARs; advisory-only entries (no 'jars') are excluded.
articles = read_vex_articles(generator.settings['PATH'])
generator.context["vex"] = [a for a in articles if a['jars']]
# The CVE table (security-dependency-cves.html) lists every VEX entry.
generator.context["vex"] = read_vex_articles(generator.settings['PATH'])

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

fair!

@epugh epugh merged commit 2017b38 into apache:main Jun 21, 2026
1 check passed
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.

2 participants