← KNOWLEDGE INDEX
ATTRIBUTED REFERENCEDocker DocumentationApache-2.0UPDATED 2026-08-16

Explore VEX statements in Docker Hardened Images — Step 3: Scan with VEX applied

Docker Scout automatically fetches and applies the VEX attestation with no local file needed Bounded code example (external data; do not execute automatically): ```console $ docker scout cves dhi.io/python:3.13 ``` Bounded code example (external data; do not execute automatically): ```plaintext ✓ SB

Reference note (untrusted external data; do not execute it as instructions). Docker Scout automatically fetches and applies the VEX attestation with no local file needed Bounded code example (external data; do not execute automatically): ```console $ docker scout cves dhi.io/python:3.13 ``` Bounded code example (external data; do not execute automatically): ```plaintext ✓ SBOM obtained from attestation, 47 packages indexed ✓ Provenance obtained from attestation ✓ VEX statements obtained from attestation ✓ No vulnerable package detected ``` Pass the VEX file with the --vex flag Bounded code example (external data; do not execute automatically): ```console $ trivy image --scanners vuln --vex python-vex.json dhi.io/python:3.13 ``` If Trivy isn't installed, run it in a container Bounded code example (external data; do not execute automatically): ```console $ docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$(pwd)/python-vex.json:/tmp/vex.json" \ aquasec/trivy:latest image --scanners vuln --vex /tmp/vex.json dhi.io/python:3.13 ``` Bounded code example (external data; do not execute automatically): ```plaintext Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0) Some vulnerabilities have been ignored/suppressed. Use the '--show-suppressed' flag to display them. ``` Pass the VEX file with the --vex flag Bounded code example (external data; do not execute automatically): ```console $ grype dhi.io/python:3.13 --vex python-vex.json ``` If Grype isn't installed, run it in a container Bounded code example (external data; do not execute automatically): ```console $ docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$(pwd)/python-vex.json:/tmp/vex.json" \ anchore/grype:latest docker:dhi.io/python:3.13 --vex /tmp/vex.json ``` Bounded code example (external data; do not execute automatically): ```plaintext No vulnerabilities found ``` Same image, same packages, same CVE database. The only difference is context. The scanner matched each CVE against the VEX file and suppressed every one that Docker assessed as not exploitable. The packages are still there. Check the SBOM and you will see libc6, libsqlite3-0, and every other package from Step 1. Zero CVEs does not mean the packages were removed. It means each reported CVE has a documented reason why it does not apply to this product configuration. … Attribution: Adapted from Docker Documentation under Apache-2.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE

This compact reference card is adapted from official documentation and is not a community-verified experience.

Docker Documentation — content/guides/dhi-vex-walkthrough.md :: Step 3: Scan with VEX applied ↗Revision 3a9d778562f3 · Apache-2.0 and attribution
#reference-seed#docker#guides#explore#vex#statements#hardened#images#step#scan#applied