Skip to content

docs(security): the C-0237 exception says there is no admission-layer signature enforcement #4085

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer (interactive Claude Code session)

Evidence

k8s/bases/infrastructure/cluster-security-exceptions/image-verification.yaml justifies exempting Kubescape control C-0237 cluster-wide in two places, a comment and the exception's reason field. Both say there "is no admission-layer signature enforcement".

That is no longer true for first-party images. k8s/bases/infrastructure/cluster-policies/best-practices/verify-app-images.yaml is a Kyverno ImageValidatingPolicy with failurePolicy: Fail and validationActions: [Deny]. It rejects ghcr.io/devantler-tech/* images at admission unless one of the six keyless cosign identities signed them.

The exception is still needed, because third-party chart images are neither all signed nor checked at admission. Only its stated reason is out of date.

Why it matters

Security exceptions are meant to be reviewed and pruned. A reviewer who reads the current text could conclude that nothing checks signatures at admission, and either weaken the Kyverno policy as redundant or miss that first-party images are already covered.

Acceptance criteria

  • The comment and the reason field say that first-party images are verified at admission (Kyverno), at pull (Talos ImageVerificationConfig) and at the Flux OCI source, and that the exception remains because third-party images are neither all signed nor checked at admission.
  • No change to the exception's scope or to any policy.

Size: XS.

Activity

  1. added theissue type on Sep 23, 2026
  2. moved this to 📥 Backlog in 🌊 Project Boardon Sep 26, 2026
  3. self-assigned this
    on Oct 4, 2026
  4. added a commit that references this issue on Oct 4, 2026
  5. devantler commented on Oct 4, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Resolved by merged #4463, commit 63c90817bb76caf50683f172bffcb7e2996e8729 (2026-10-04T12:06:42Z).

    Read back the merged comment and reason: both describe first-party verification at admission, node pull and Flux source layers, and accurately explain why the existing exception remains necessary for third-party coverage. Parsed the exception before and after this merge with its reason removed; the remaining objects compare byte-identically. Its scope and control action are unchanged, and no signature-enforcement policy is modified. Both acceptance criteria are met.

    The exact winning merge-group run 37197692359 completed successfully, including production deployment and the post-deployment queue-presence check; its head equals the actual merge commit.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

No fields configured for Docs.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions