Adding a package to a Chainguard Container
Choose how to add a package to a Chainguard Container, find the package name, apply the change, and confirm the package …
For the complete documentation index, see llms.txt.
Use chainctl images advisories list to compare the advisories for the APK packages in an image with the CVEs reported by your scanner.
Note: This command checks APK packages only. It does not determine whether a CVE affects a Go module, Java dependency, or another non-APK component in the image.
You need:
chainctl installed and authenticated.linux/amd64.Run the command against the same image reference and platform that your scanner analyzed:
chainctl images advisories list \
cgr.dev/chainguard/<image>@sha256:<digest> \
--platform=linux/amd64 \
-o wideThe output includes the APK package, package version, advisory ID, CVE aliases, status, and advisory type. Compare the package name and version—not only the CVE alias—with the scanner’s finding.
If the image has no SBOM attestation, or the requested platform does not have one, the command cannot use that image to perform the lookup. If no matching advisory is shown, do not treat that alone as proof that the scanner finding is a false positive; first verify the image digest, platform, package ecosystem, package version, and scanner database.
--status
Use --status to narrow the output to the advisory states you need to review. You can provide multiple values as a comma-separated list, or by repeating the flag:
# Findings that still need attention or confirmation
chainctl images advisories list "$IMAGE" \
--status=detected,true-positive,pending-upstream
# Findings with a recorded fix or backported patch
chainctl images advisories list "$IMAGE" \
--status=fixed,patched
# The same filter using repeated flags
chainctl images advisories list "$IMAGE" \
--status=detected \
--status=pending-upstreamTo inspect one CVE from the table output, filter the displayed aliases after retrieving the results:
chainctl images advisories list "$IMAGE" -o wide | grep 'CVE-2026-42151'The command filters advisories by their current status. It does not accept a CVE as the primary lookup key, and it does not replace the scanner’s analysis of non-APK components.
The command reports the status derived from the advisory’s most recent event:
| Status | Meaning | How to use it when triaging |
|---|---|---|
detected | The advisory has a recorded detection event. | Treat it as a finding that still needs validation or remediation. |
true-positive | The advisory has been confirmed as applicable. | Prioritize it as an applicable vulnerability. |
fixed:<version> | A fix is recorded in the specified package version. | Compare the fixed version with the package version in your image and rebuild or upgrade if needed. Filtering with --status=fixed matches version-qualified values. |
false-positive | The advisory has been marked as not applicable. | Use the advisory record as context, but keep the scanner finding separate until you understand why the scanner reported it. |
analysis-not-planned | No applicability analysis is planned for the advisory. | Do not interpret this as “not vulnerable.” Use independent evidence for your risk decision. |
fix-not-planned | No fix is planned for the advisory. | Review the advisory context and choose a mitigation, exception, or replacement according to your policy. |
pending-upstream | Chainguard is waiting for an upstream fix. | This explains why a fixed package may not yet be available; it is not confirmation that the finding is absent. |
patched:<version> | The vulnerability is patched in the specified package version, typically by backporting the fix. | Compare the patched version with the package version in your image. Filtering with --status=patched matches version-qualified values. |
unknown | The advisory has no recognized status event. | Investigate the advisory and scanner evidence rather than assuming either presence or absence. |
A missing result can have several explanations:
A missing result is therefore a prompt to reconcile the two data sources, not a standalone false-positive determination.
chainctl images advisories list is not the right validation tool for language-level dependencies. Use the scanner’s language-package evidence and the relevant upstream vulnerability data instead.
For a Go-module finding:
go.mod or go.sum.Do not use an APK advisory result—or the absence of one—to declare a Go-module CVE a false positive.
For a Java finding:
A Java dependency finding is distinct from an APK finding in the base image. Use chainctl images advisories list only for the APK portion of the image.
If a result is still unclear, you can contact support. When contacting support, include:
chainctl images advisories list output, preferably in -o wide or JSON form.Last updated: 2026-09-10 00:00