# Trivy ignore list
#
# Every entry in this file is a known HIGH or CRITICAL CVE that we have
# consciously accepted risk on and decided not to block CI over. Format:
#
#   CVE-YYYY-NNNNN
#   # Justification: why we're accepting this risk, and a link or note about
#   # when to revisit (e.g. "blocked on upstream base image update, revisit
#   # when alpine/node:22 ships a fix").
#
# Rules:
#   - Every CVE MUST have a justification comment directly above it.
#   - If there is no justification, the CVE is not ignored - add it here only
#     after a human review and a decision to accept the risk.
#   - Review this file on every release; remove entries whose upstream fix has
#     landed.
#
# Picked up automatically by aquasecurity/trivy-action from the repo root
# working directory. Both the pre-push PR scan (.github/workflows/ci.yml) and
# the release-time re-scan (.github/workflows/docker-publish.yml) honor it.
#
# Note: The following CVEs that were previously accepted here have been resolved
# by building Docker CLI and Compose from source against Go 1.26.2 (PR feat/security-pin-and-rebuild):
#   CVE-2026-32280, CVE-2026-32281, CVE-2026-32282, CVE-2026-32283  (Go stdlib x509/TLS, fixed in Go 1.26.2)
#   CVE-2026-33810  (Go stdlib DNS name constraint bypass, fixed in Go 1.26.2)
#   CVE-2026-33186  (grpc 1.78.0 HTTP/2 server attack, eliminated by source rebuild)
#   CVE-2026-33671  (picomatch ReDoS in npm, eliminated by removing npm from runtime image)
#
# The remaining entries below are vendored inside docker/compose v5.1.2 and
# cannot be patched without a new upstream compose release. They will be
# migrated to security/vex/sencho.openvex.json (OpenVEX format) in the
# follow-up PR (feat/security-sbom-vex), after which this file will be deleted.

# ---------------------------------------------------------------------------
# Bundled inside /usr/local/lib/docker/cli-plugins/docker-compose (v5.1.2)
# ---------------------------------------------------------------------------
# Compose v5.1.2 is the latest upstream release. It statically links older
# copies of github.com/docker/docker, buildkit, and otel. We cannot bump
# these transitively without waiting for a new upstream Compose release.
# Revisit this block on every Compose release; remove entries as upstream
# rebuilds ship the fixes.

# Justification: github.com/docker/docker v28.5.2 statically bundled in
# compose v5.1.2. Moby authz bypass applies to a Docker daemon, not to the
# compose CLI plugin; compose never runs as a daemon. Revisit on next
# Compose upstream release.
CVE-2026-34040

# Justification: github.com/moby/buildkit v0.27.1 statically bundled in
# compose v5.1.2. BuildKit arbitrary file write via untrusted frontend is
# exploited at buildkit build time with attacker-controlled frontends; our
# compose invocations only call up/down/ps against local user-authored
# compose files, never as a build frontend. Revisit on next Compose upstream
# release.
CVE-2026-33747

# Justification: github.com/moby/buildkit v0.27.1 statically bundled in
# compose v5.1.2. Same exposure profile as CVE-2026-33747 (Git URL fragment
# subdir exploitation requires invoking buildkit on untrusted repo URLs,
# which compose does not do in our flow). Revisit on next Compose upstream
# release.
CVE-2026-33748

# Justification: go.opentelemetry.io/otel/sdk v1.38.0 statically bundled in
# compose v5.1.2. PATH hijacking requires the attacker to control the
# process PATH before compose starts; our container starts compose from a
# fixed PATH with only /usr/local/bin and /usr/bin on it, both owned by
# root. Revisit on next Compose upstream release.
CVE-2026-24051

# Justification: go.opentelemetry.io/otel/sdk v1.38.0 statically bundled in
# compose v5.1.2. BSD kenv PATH hijacking only applies on BSD systems; we
# ship linux/amd64 and linux/arm64. Not applicable in our runtime. Revisit
# on next Compose upstream release.
CVE-2026-39883
