You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
security(attestation): cross-bind receipt manifest claims to exact predicate semantics #2311
#2309 makes the unsigned completion manifest self-describing and binds it to the exact predicate bytes with predicate_sha256. The manifest also duplicates policy-relevant fields from those predicate bytes (source_repository, source_sha, workflow_run_id, predicate type, artifact metadata, evidence SHA, ordered execution-artifact identities), but validate_receipt_manifest() currently validates those manifest fields only for syntax. It does not prove that the duplicated values equal the values inside the predicate whose SHA it verifies.
An unsigned manifest can therefore be altered to another syntactically valid repository/run/artifact/execution identity while retaining the correct predicate_sha256. A future signer that consults the manifest for policy and signs the predicate bytes can observe two contradictory representations of the same receipt pair.
This is an owner-contract ambiguity. It does not authorize TEPP psychometric decisions in .github and does not make the unsigned pair authenticated provenance.
Acceptance
Strictly parse the exact predicate bytes before accepting the completion marker.
Fail closed on predicate schema/type drift relevant to the signer handoff.
Cross-bind every manifest field that duplicates predicate/evidence content to the exact value represented by the predicate bytes: source repository/SHA/run, predicate type, artifact digest/id/name, evidence filename/SHA, and ordered execution-artifact identities.
Preserve predicate_sha256 recomputation as the primary byte-identity check.
Keep attestation_claim = origin_and_integrity_only and the current explicit does_not_prove boundary; no RMSE/bias/construct/estimator authority in .github.
Add hostile RED for a syntactically valid but semantically contradictory manifest and 100% owned branch/docstring coverage.
Implemented on canonical verifier PR #2300. Source-level RED 924fcf99c0c90ca0b892177e930c2880fa92890c proves that the predecessor accepts a syntactically valid manifest whose source_repository or ordered execution identities contradict the exact predicate bytes while retaining a correct predicate_sha256. Causal repair b8b3cb1d39a7b75c470576d4f031c0188e421a97 strictly parses the committed predicate, preserves the origin_and_integrity_only / explicit does_not_prove boundary, and cross-binds duplicated repository/run/predicate/artifact/evidence/execution fields. Coverage follow-up 05f0d4f4fdc201d63281141a08e6abd9ac2f334b exercises scientific-boundary drift and non-object predicate evidence. CHANGELOG f05905f5..., doctoring a78873c6.... Hosted exact-head gates and independent review are still required; this issue remains open rather than being source-closed.
Activity
test(attestation): reject manifest-predicate semantic split (#2311)
fix(attestation): cross-bind manifest and predicate semantics (#2311)
test(attestation): cover strict predicate handoff refusal (#2311)
docs(attestation): record manifest-predicate cross-binding (#2311)
docs(attestation): doctor manifest-predicate semantic binding (#2311)
seonghobae commentedon Sep 20, 2026
Implemented on canonical verifier PR #2300. Source-level RED
924fcf99c0c90ca0b892177e930c2880fa92890cproves that the predecessor accepts a syntactically valid manifest whosesource_repositoryor ordered execution identities contradict the exact predicate bytes while retaining a correctpredicate_sha256. Causal repairb8b3cb1d39a7b75c470576d4f031c0188e421a97strictly parses the committed predicate, preserves theorigin_and_integrity_only/ explicitdoes_not_proveboundary, and cross-binds duplicated repository/run/predicate/artifact/evidence/execution fields. Coverage follow-up05f0d4f4fdc201d63281141a08e6abd9ac2f334bexercises scientific-boundary drift and non-object predicate evidence. CHANGELOGf05905f5..., doctoringa78873c6.... Hosted exact-head gates and independent review are still required; this issue remains open rather than being source-closed.