CVE-2026-54248: Doco-CD has an OCI Trust Policy Bypass via Artifact-Contained Configuration
Doco-CD is a GitOps continuous delivery tool that automatically deploys and updates Docker Compose projects/services and Swarm stacks. Prior to version 0.90.1, a trust-boundary flaw in OCI artifact verification allowed artifact-provided deployment config to influence the policy used to verify that same artifact. When global OCI signature verification was enabled via OCITRUSTPOLICY (enabled: true), an attacker with write access to the configured OCI tag could publish an unsigned or improperly signed artifact containing .doco-cd.yml with oci.verify: false. This could cause signature verification to be bypassed and untrusted deployment content to be applied. This primarily impacts users deploying from OCI artifacts where deployment config is read from artifact contents (for example, poll/webhook flows without trusted inline deployment overrides). The issue is fixed by enforcing a strict trust boundary and no-downgrade behavior. First, artifact-contained .doco-cd.yml is treated as untrusted for OCI trust-policy override decisions. Second, if global OCITRUSTPOLICY.enabled is true, per-deployment oci.verify: false cannot disable verification. Some workarounds are available. Do not source deployment config from untrusted OCI artifact contents. Use trusted inline POLLCONFIG.deployments and avoid relying on artifact-contained trust-policy overrides. Restrict write/push permissions for OCI repositories/tags used by doco-cd. Prefer immutable digest pinning and protected release/tag workflows. Monitor for unexpected artifact digest changes and failed/suspicious verification events.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Doco-CDto a version that resolves this vulnerability.Fixed in 0.90.1 - Configuration
Use trusted inline `POLL_CONFIG.deployments` to supply deployment config, and avoid relying on artifact-contained `.doco-cd.yml` where deployment config is read from artifact contents (e.g., poll/webhook flows without trusted inline deployment overrides).
Doco-CD (inline trusted configuration) POLL_CONFIG.deployments (trusted inline overrides) = use trusted inline deployments instead of relying on artifact-contained `.doco-cd.yml` - Configuration
If you use global OCI signature verification, keep `OCI_TRUST_POLICY.enabled: true` so that per-deployment `oci.verify: false` cannot disable verification.
Doco-CD (OCI trust policy) OCI_TRUST_POLICY.enabled = true - Compensating control
Monitor for unexpected OCI artifact digest changes and failed/suspicious verification events.
- Compensating control
Prefer immutable digest pinning and protected release/tag workflows for the OCI artifacts used by Doco-CD.
- Compensating control
Restrict write/push permissions for the OCI repositories/tags used by Doco-CD (an attacker with write access to the configured OCI tag could publish an unsigned/improperly signed artifact with `.doco-cd.yml` where `oci.verify: false`).
Event History
Frequently Asked Questions
Which deployments are most exposed to this issue?
Deployments sourced from OCI artifacts are primarily affected when Doco-CD reads deployment configuration from artifact contents. Poll or webhook flows without trusted inline deployment overrides are examples of exposed configurations.
What access would an attacker need?
An attacker needs write access to the configured OCI tag. They could then publish an unsigned or improperly signed artifact containing a .doco-cd.yml file that sets oci.verify to false.
Is global OCI signature verification sufficient to prevent exploitation in affected versions?
No. Before version 0.90.1, an artifact-provided configuration could disable verification even when OCI_TRUST_POLICY had enabled set to true.
What version resolves the issue?
Version 0.90.1 fixes the issue by treating artifact-contained .doco-cd.yml as untrusted for OCI trust-policy override decisions and preventing per-deployment oci.verify false from disabling globally enabled verification.