Skip to content

Security: attach a VEX statement for the musl CVE to Docker Hub images - #555

Merged
SandObserver merged 2 commits into
mainfrom
security/scout-vex-musl
Oct 25, 2026
Merged

SandObserver merged 2 commits into
mainfrom
security/scout-vex-musl

Conversation

@SandObserver

@SandObserver SandObserver commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add .github/vex/stackyard.vex.json, an OpenVEX v0.2.0 template marking CVE-2026-107891 as not_affected (vulnerable_code_not_present): Alpine 3.24 ships the fix in musl 1.2.6-r3, while Docker Scout applies the edge threshold of 1.2.6-r6 (Alpine 3.24 musl 1.2.6-r3 incorrectly matched to CVE-2026-107891 using edge's r6 threshold docker/scout-cli#248). Its product and id are placeholders, so the file names no real image.
  • Add a vex release job after build-and-push, only when Docker Hub is configured, with a 10 minute limit and continue-on-error. No release job waits for it.
  • Read musl from each platform's published image and attach nothing when it is older than 1.2.6-r3. Stamp the product, document id and timestamp per release and name the shipped musl.
  • Attach with docker/scout-cli pinned by digest, by referrer to each platform's manifest digest, so the image index, its digest and the cosign signature stay unchanged.

Testing
All green. Added 4 tests for the job, the musl check, the Scout pin and the document template; ran the musl check against the 1.19.0 image (refused) and Alpine 3.24.3 (accepted).

Changelog

Security

  • Mark CVE-2026-107891 as not affecting the Docker Hub image, which ships the patched musl 1.2.6-r3.

Checklist

  • Stays within the project constraints: one container, no runtime dependencies, no build step (see CONTRIBUTING.md).
  • Tests added or updated for new logic, and the full suite, lint, and typechecks pass.
  • Docs updated if behavior or configuration changed.

Docker Scout reports CVE-2026-107891 against musl 1.2.6-r3, the patched
Alpine 3.24 package. The release now attaches an OpenVEX statement to each
published platform through Scout's referrer registry, leaving the signed
image digest unchanged.
@SandObserver SandObserver added github_actions Pull requests that update GitHub Actions code security Security fix labels Oct 25, 2026
- Move the attach steps into a vex job after build-and-push, with a 10 minute
  limit and continue-on-error. No release job waits for it.
- Read musl from each platform's published image and attach nothing when it is
  older than 1.2.6-r3. Name the shipped musl in the statement and stamp the
  document id and timestamp per release.
- Run the Scout CLI from docker/scout-cli pinned by digest, attaching by
  referrer to each platform's manifest digest.
- Make the repository document a template whose product names no real image.
@SandObserver
SandObserver merged commit 8a594c0 into main Oct 25, 2026
8 checks passed
@SandObserver
SandObserver deleted the security/scout-vex-musl branch October 25, 2026 19:24
stackyard-release Bot pushed a commit that referenced this pull request Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update GitHub Actions code security Security fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant