Skip to content

STAC-25026: add //vexhub-main subdir to the tarball location URL#14

Open
LouisLotter wants to merge 1 commit into
mainfrom
STAC-25026-manifest-vexhub-main-subdir
Open

STAC-25026: add //vexhub-main subdir to the tarball location URL#14
LouisLotter wants to merge 1 commit into
mainfrom
STAC-25026-manifest-vexhub-main-subdir

Conversation

@LouisLotter

Copy link
Copy Markdown
Contributor

Why

GitHub branch tarballs extract into a vexhub-main/ top-level directory. Because the location URL in vex-repository.json lacks the go-getter //vexhub-main subdirectory hint, every fresh trivy vex repo download of this hub lands nested (<cache>/stackvista/0.1/vexhub-main/...).

Consequences:

  • trivy --vex repo needs index.json at the version root, so it silently ignores the whole hub — VEX statements stop applying to Trivy scans with no error.
  • Grype-style document collection (rglob for *openvex*.json) still finds the nested files, so the failure is asymmetric and easy to miss: findings resurface as Trivy-only rows.
  • Observed 2026-06-12: the jetty CVE-2024-6763 not_affected statement (Add StackGraph Jetty HTTP VEX statement #9) stopped suppressing in the daily VEX-aware chart scan after a cache refresh, while Grype stayed suppressed.

The rancher vexhub manifest already carries the suffix; this aligns ours.

Verification

Served the edited manifest from a local .well-known/vex-repository.json endpoint and ran trivy vex repo download stackvista against a scratch cache — the download fetches the real main.tar.gz//vexhub-main production URL:

layout: index.json@root=YES nested=absent docs=2
0.1/: CODEOWNERS LICENSE README.md index.json pkg ...

Also verified statement efficacy with a healthy layout: trivy --vex repo on quay.io/stackstate/hadoop:3.4.3-so6 reports CVE-2024-6763 8× without VEX, 0× with.

Rollout

No consumer action needed: the location URL is part of trivy's cache ETag key, so the next trivy vex repo download after merge treats it as a new location and re-downloads cleanly. Pre-existing nested residue in old caches is harmless once index.json exists at the version root.

Ref: STAC-25026 (resolution comment has the full incident analysis).

🤖 Generated with Claude Code

GitHub branch tarballs extract into a vexhub-main/ top-level directory.
Without the go-getter //vexhub-main subdirectory hint, trivy vex repo
download leaves the repository nested (0.1/vexhub-main/...), which
'trivy --vex repo' cannot read (it needs index.json at the version
root) while Grype-style document collection still finds the files.
Result: VEX statements silently stop applying to Trivy scans, e.g.
the jetty CVE-2024-6763 statement on 2026-06-12. Mirrors the rancher
vexhub manifest, which already carries the suffix.
@LouisLotter LouisLotter requested a review from a team as a code owner June 12, 2026 09:07
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