Skip to content

fix(security): every privileged entrypoint proves its contract's ancestry - #15

Merged
rldyourmnd merged 1 commit into
mainfrom
fix/every-privileged-entrypoint-proves-its-contract
Sep 1, 2026
Merged

fix(security): every privileged entrypoint proves its contract's ancestry#15
rldyourmnd merged 1 commit into
mainfrom
fix/every-privileged-entrypoint-proves-its-contract

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Closes the critical provenance gap: resume/rollback/verify/evidence and the out-of-band plan branch executed caller-supplied commits on privileged runners with no ancestry proof. All six entrypoints now carry cd-apply's exact hosted authorize-contract gate + re-comparison; validator and structure tests enforce it with verified negative controls (a stripped needs fails both).

https://claude.ai/code/session_01LsGid6U5RrQdFvJmvYdGCF

…stry

Only cd-apply proved that contract_sha is an ancestor of reviewed main.
cd-resume, cd-rollback, cd-verify, cd-evidence and both branches of
cd-plan checked out a caller-supplied commit and executed its composite
action -- resume and rollback on the protected out-of-band runner with
id-token: write behind the cd-apply environment.

Every entrypoint now carries the same hosted authorize-contract job before
anything checks the commit out, the consuming jobs re-compare the
authorized value, and top-level permissions drop to {} with explicit
per-job grants, matching cd-apply's shape exactly.

The gate is enforced three ways so it cannot erode silently again:
validate_module.sh requires the full control set in all six workflows and
counts that no contract checkout outnumbers its authorizations -- removing
one needs line was verified to fail the validator; the structure tests
assert the same properties and prove their own checker rejects a stripped
needs and a stripped comparison; and the ordering check keeps every
authorization ahead of the job it guards.

Claude-Session: https://claude.ai/code/session_01LsGid6U5RrQdFvJmvYdGCF
@rldyourmnd
rldyourmnd merged commit 8548763 into main Sep 1, 2026
5 checks passed
@rldyourmnd
rldyourmnd deleted the fix/every-privileged-entrypoint-proves-its-contract branch September 1, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant