How It Works
ZeroPath Container Scanning analyzes the container images you actually ship. Instead of inspecting only the source a repository builds from, it examines a built image — pulled by its registry reference or uploaded as a local archive — looking at the operating system and everything bundled on top of it for known vulnerabilities. Public images, private registries (with credentials), and air-gapped images shared as adocker save archive are all supported. Findings are surfaced under the existing
Supply Chain section, alongside dependency analysis, so image-level and source-level risk live in
one place.
Image-Level Scanning
Scans a built image — pulled by registry reference, including private registries with credentials,
or uploaded as a local archive — and analyzes OS packages and bundled dependencies baked into it,
not just the source it was built from.
Per-Layer Attribution
Ties every vulnerability to the image layer that introduced it, so you can tell inherited base-image
issues from ones your build added.
Continuous Monitoring
Re-scans monitored images on a schedule so newly disclosed CVEs surface without a manual re-run.
End-to-end Flow
1
Image Submitted
You point ZeroPath at a built image. ZeroPath either resolves a registry reference and pulls the
image — authenticating with the registry credentials you provide for private registries — or reads
a local image archive you upload for air-gapped images that cannot be pulled.
2
Layer Extraction
The image is unpacked layer by layer. ZeroPath records which layer contributes each file so findings
can later be attributed to the layer that introduced them.
3
Package Inventory
ZeroPath inventories the operating-system packages and the application dependencies bundled into the
image, building a complete picture of everything that ships inside it — including packages that never
appear in your source manifests.
4
Vulnerability Matching
Inventoried packages are matched against vulnerability intelligence to identify known issues in OS
packages and bundled dependencies.
5
Per-Layer Findings & Severity
Each finding is attributed to the layer that introduced it and is severity-rated (Critical / High /
Medium / Low), so you can immediately see whether an issue came from your base image or your own
build steps.
6
Base-Image Upgrade Guidance
ZeroPath detects the image’s base and, when a newer stable base of the same distribution exists,
scans that candidate and recommends it — reporting how many of the current findings the upgrade
would remove, so you can fix the most vulnerabilities with the fewest changes.
7
Results Delivered
Findings are surfaced under the Supply Chain section in your dashboard, API, and integrations.
Container scan findings also appear in the main Issues list alongside SAST and SCA results, giving you a unified view of all security findings across your organization.
Monitored images are re-evaluated on their schedule as new vulnerabilities are disclosed.
Container Images Dashboard
The Containers section is organized into two pages: a Dashboard overview and an Images list.Dashboard
The Dashboard provides an at-a-glance overview of all tracked container images across your organization, including:- Image counts — total tracked images, how many are monitored on a schedule, how many are currently scanning, and how many have a failed latest scan.
- Findings by severity — a breakdown of total findings across every image’s latest scan, bucketed by Critical, High, Medium, Low, and Informational.
- Base-image upgrade opportunities — images where a newer base of the same distribution would remove findings, ranked by the number of findings the upgrade resolves.
- Most-vulnerable images — a ranked list of the images with the highest finding counts.
Images List
The Images page lists all tracked container images with search, filtering, and pagination. Images are grouped by repository so you can see at a glance which images belong to which project; standalone images (not linked to a repository) collect under their own group. You can submit new images for scanning directly from this page using the Scan image button, which opens a dialog with three modes:- Image reference — enter an image reference (e.g.
ghcr.io/acme/api:1.4), optionally provide private registry credentials (username + token), and optionally set a monitoring schedule (cron expression, UTC). If the registry host you type matches one of your org’s saved registry connections, the dialog will suggest switching to Connected registry mode so you can pull without re-entering credentials. You can also clear previously stored credentials for an image to revert it to an anonymous pull. - Connected registry — pick one of your organization’s registry connections, browse its repositories and tags (or enter an image path manually), and submit without re-entering credentials. This tab is only shown when your organization has at least one registry connection. You can also set a monitoring schedule in this mode.
- Upload archive — upload a
docker savetarball (.tar) for images that cannot be pulled from a registry. A progress bar tracks the upload.
The dialog cannot be closed while a submission is in flight. This prevents the form from being
reset mid-upload. Once the scan is enqueued, the dialog closes automatically and navigates to the
new image’s detail page.
Turning off the monitoring schedule checkbox in the dialog does not disable an existing
monitoring schedule on an image you are re-submitting — it simply leaves the existing schedule
unchanged. To disable monitoring for an image, use the Settings tab on that image’s detail
page.
Image Detail
Clicking an image opens a detail page with three tabs:- Overview — severity histogram (Critical / High / Medium / Low), fixable and resolved counts, base-image upgrade recommendation (when available), image metadata (digest, size, build date, findings count, detected base image), and a layer breakdown showing which layers are base-image layers and which are application layers.
- Vulnerabilities — a searchable, filterable list of every CVE found in the image’s latest scan. You can search by CVE ID or package name, and filter by severity (Critical, High), fixable status, or open status. Clicking a CVE opens the full issue detail with the same triage workflow used across the rest of ZeroPath (status changes, patching, Jira export, etc.). Deep links to individual findings are shareable via the URL.
- Settings — configure a monitoring schedule (cron expression, UTC) for registry images, and link or relink the image to a repository in your organization.
- Re-scan now — pull and re-scan a registry image immediately. (Uploaded archives cannot be re-scanned because the original tarball is not retained.)
- Delete — permanently remove the tracked image and all of its scan history.
Managing Container Images
From the dashboard or the API, you can:- List images with search and cursor-based pagination, optionally filtered by repository.
- View image details including the latest scan summary, queue status, and monitoring schedule.
- Enable monitoring with a cron schedule so the image is re-scanned on a recurring basis.
- Disable monitoring to return to scan-on-submit only.
- Link to a repository to reassign an image from one repository to another (both must be in your organization and accessible to you).
- Delete an image to stop tracking it entirely and remove all of its scan history.
Repository Deletion
When a repository is deleted from ZeroPath, its associated container images are automatically detached from their registry connections and their monitoring schedules are stopped. The images themselves are not deleted — they remain in ZeroPath’s records but will no longer re-scan automatically or authenticate with the saved registry connection. You can re-link or delete them manually from the Images list.Connect a Registry
For private registries, you can save an organization-level registry connection once instead of passing inline credentials with every submit. Connections are created under Settings → Integrations → Registries — in the Manage Registries dialog’s Container registries section: pick a provider, enter its credentials, and ZeroPath validates them against the registry before saving. (The same dialog also manages private package registries for dependency analysis.) Any scan of an image in that registry — one-shot, monitored re-scan, or API submission — can then authenticate with the stored connection. Credentials are stored encrypted and tokens are never returned by any API. Use read-only scopes wherever the provider supports them; each provider’s requirements are listed below.Docker Hub
Docker Hub
Your username, a read-only access token (Docker Hub → Account Settings → Personal
access tokens), and the namespace to browse (defaults to the username).Docker Hub rate-limits image pulls — the free tier allows authenticated users 200 pulls per
6 hours. Every scan pulls the image, so keep monitoring schedules across many Docker Hub
images coarse enough to stay under the limit. A rate-limited pull surfaces as a failed scan
carrying the registry’s rate-limit message.
GitHub Container Registry (GHCR)
GitHub Container Registry (GHCR)
The GitHub username that owns the token, the organization or user whose packages you
want to browse, and a classic personal access token with the
read:packages scope. The
token must be a classic PAT — GitHub does not support fine-grained PATs for ghcr.io.Amazon ECR
Amazon ECR
Your AWS account ID, the registry’s region, and an access key ID / secret access
key pair. Use a least-privilege IAM user with the
AmazonEC2ContainerRegistryReadOnly
managed policy — ZeroPath only needs to list and pull images. The keys are exchanged for
short-lived ECR authorization tokens at scan time.Google Artifact Registry (GAR)
Google Artifact Registry (GAR)
The registry host (
{location}-docker.pkg.dev, e.g. us-central1-docker.pkg.dev), the
GCP project ID, and a service account JSON key granted
roles/artifactregistry.reader. The key is exchanged for short-lived access tokens at scan
time.Azure Container Registry (ACR)
Azure Container Registry (ACR)
The login server (
myregistry.azurecr.io) plus either a repository-scoped token
(token name as the username, token password as the password) or a service principal
(application ID as the username, client secret as the password) with pull access.JFrog Artifactory
JFrog Artifactory
The base host (e.g.
mycorp.jfrog.io), a username, and an identity token.
Pulling and scanning work on all editions; browsing repositories from the scan dialog uses
Artifactory’s repository-listing API, which requires Artifactory Pro.Generic OCI registry
Generic OCI registry
Any other registry that speaks the OCI Distribution API — Harbor, Quay, GitLab’s registry, a
self-hosted
registry:2, and so on: the registry host, a username, and a token or
password. Browsing repositories requires the registry to support the /v2/_catalog
endpoint; without it you can still scan by entering an image reference, and the connection’s
credentials are still used for the pull.Scanning with a connection
Once a registry is connected, the Scan image dialog gains a Connected registry mode: pick the connection, browse its repositories and tags, and submit — no credentials re-entered. API and CLI submissions reference the connection by ID instead of carrying inline credentials:registryConnectionId is mutually exclusive with inline registryUsername/registryToken, and
the image reference’s host must match the connection’s registry host.
Registry connection in API responses
When you fetch a container image via the API, the response includes aregistryConnection field
that identifies the org-level registry connection associated with the image. When the image uses a
saved connection, this field contains the connection’s id and displayName; when the image uses
inline credentials or pulls anonymously, it is null. The hasRegistryAuth flag remains true
whenever either a saved connection or inline credentials are present, so existing consumers that
check only the flag continue to work without changes.
Running Scans
- One-Shot Scan
- Private Registry
- Local Archive (Air-Gapped)
- Monitored Scan
Run a single scan of a built image to get an immediate snapshot of its vulnerabilities. This is the
right choice for ad-hoc checks, CI/CD gates on a freshly built image, or evaluating an image before
you promote it.The scan pulls the referenced image, inventories its OS packages and bundled dependencies, and
returns per-layer findings with base-image upgrade guidance.
Key Capabilities
OS Package Coverage
Detects known vulnerabilities in the system packages installed in your base image and build steps.
Bundled Dependency Detection
Finds vulnerable application dependencies copied or installed into the image during the build —
including packages that never appear in your source manifests.
Per-Layer Attribution
Every vulnerability is tied to the layer that introduced it, distinguishing inherited base-image
issues from ones your build added.
Base-Image Upgrade Recommendations
Detects the image’s base and, when a newer stable base of the same distribution exists, scans that
candidate and reports how many findings the upgrade would remove — so a single change can clear many
issues at once.
Private Registry Support
Scans images in private registries using inline credentials or a saved org-level registry
connection (Docker Hub, GHCR, ECR, GAR, ACR, Artifactory, or any OCI registry). Credentials
are sent over TLS and stored encrypted.
Local Archive Upload
Scans air-gapped images that cannot be pulled by uploading a
docker save archive directly, with no
registry access required.Scheduled Monitoring
Re-scans monitored images on a recurring schedule so newly disclosed CVEs surface automatically.
Unified Supply Chain View
Image-level findings appear under the same Supply Chain section as dependency analysis, giving you the
complete picture of what ships in production.
Archive Upload via API
Upload a container image tarball through the API in chunks for air-gapped environments where
registry access is not available. The chunked upload flow handles large archives reliably.
Adoption Checklist
1
Identify the Images You Ship
List the built images that run in production — these are the artifacts Container Scanning analyzes by
registry reference.
2
Run a One-Shot Scan
Use
zeropath container test <image> to get an immediate snapshot of an image’s vulnerabilities.3
Review Per-Layer Findings
Inspect findings under the Supply Chain section, using layer attribution to separate inherited
base-image issues from ones your build introduced.
4
Apply Base-Image Upgrade Recommendations
When ZeroPath recommends a newer base, review how many findings the upgrade would remove and adopt it
to clear the largest share of findings with a single change.
5
Enable Monitoring
Register production images with
zeropath container monitor <image> so newly disclosed CVEs surface
automatically on a schedule.