Skip to content

feat: Add minimum release age for image pulling #281

Description

@maximbigler

Adds a minimum release age policy for image pulls. When minimumReleaseAge is set, a candidate image is only eligible to be pulled once its publish time is older than the configured duration (e.g. 3d). This mitigates supply-chain attacks where an attacker pushes a malicious version and relies on it being consumed immediately, before maintainers or scanners have a chance to yank it. Defaults to 0 (disabled), preserving existing behavior.

Timestamp source. Age is computed from the registry's reported push time for the manifest digest, obtained from the registry API. The created field in the image config is not used: it is part of the image the publisher controls and can be backdated arbitrarily, which would defeat the check entirely. If the registry does not expose a push timestamp, the pull fails closed with a clear error rather than silently falling back, operators can opt out per-registry via an allowlist if they're running a registry that can't supply it.

Maybe also add a minimumReleaseAge for repositories?

Activity

  1. added this to the phase 6 milestone on Sep 25, 2026
  2. alex289 commented on Sep 25, 2026

    @alex289
    Member

    This would only work for normal image polling and not for the image pull webhook right? The event would always be ignored right? @timokoessler

  3. timokoessler commented on Sep 26, 2026

    @timokoessler
    Member

    Yes. Personally I see this more as a feature for third-party images that are part of the same compose file (e.g. database ...). However we can't easily detect which images are third party images and which not?

  4. alex289 commented on Oct 14, 2026

    @alex289
    Member

    UI Mock

    Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions