Should release artifacts have an independent signing or attestation identity? #1032
PierrunoYT
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem to decide
Zero's release pipeline produces per-asset SHA-256 files and the updater verifies the expected filename and digest before extraction. These are strong corruption and mismatch controls. Because the archive and its
.sha256sibling are published through the same GitHub release authority, replacement of both by an actor controlling that release channel still yields a self-consistent pair.This is not a claim that current checksum verification is broken or that a release has been compromised. It is a request to decide whether Zero's threat model should include an independent artifact-authenticity identity.
Audit context: finding
SEC-06atmainrevision1b5db1765672820caac1684b168c9898b5ba3593.Relevant boundaries:
internal/update/apply.godownloads archive and checksum and verifies before extraction.internal/release/release.gocreates and verifies the digest files..github/workflows/release-artifacts.ymlpublishes GitHub assets and uses npm OIDC/provenance behind a reviewed environment.Proposed invariant
Keep SHA-256 sibling assets for corruption detection, and—if maintainers want stronger release-channel compromise resistance—verify an independently identifiable signature or attestation before extraction/install.
The verifier should pin an expected repository/workflow or signing identity rather than accepting any signature bundled beside the archive.
Design questions
Acceptance criteria for any eventual implementation
Full audit proposal: https://github.com/PierrunoYT/zero/blob/audit/codebase-audit-2026-09-08/docs/audit/SECURITY_AUDIT.md#sec-06--sibling-checksums-do-not-independently-authenticate-releases
All reactions