Skip to content

Enforce lockfile provenance continuity and anti-downgrade policies - #4881

Draft
mosuem wants to merge 1 commit into
refresh-sigstore-trusted-rootfrom
enforce-lockfile-provenance
Draft

Enforce lockfile provenance continuity and anti-downgrade policies#4881
mosuem wants to merge 1 commit into
refresh-sigstore-trusted-rootfrom
enforce-lockfile-provenance

Conversation

@mosuem

@mosuem mosuem commented Aug 20, 2026

Copy link
Copy Markdown
Member
  • Store verified Sigstore provenance repository in ResolvedHostedDescription and pubspec.lock.
  • Cache provenance in $PUB_CACHE/hosted-provenance/.
  • Enforce ProvenancePolicy.enforcePolicy during SolveResult.downloadCachedPackages against _previousLockFile to prohibit downgrading from signed to unsigned packages and detect repository switches.
  • Add unit tests for provenance parsing, serialization, and policy enforcement.

Stack created with GitHub Stacks CLIGive Feedback 💬

@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from f2bbdce to 65e92a7 Compare August 24, 2026 12:18
@mosuem
mosuem marked this pull request as draft August 24, 2026 12:21
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch 3 times, most recently from fb97489 to c3fbf24 Compare August 24, 2026 12:49
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from c3fbf24 to 1cd2d61 Compare August 24, 2026 12:52
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch 2 times, most recently from 2a0b5fa to 8fb1df5 Compare August 24, 2026 13:04
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from 8fb1df5 to 9cc5bc0 Compare August 24, 2026 13:28
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from 9cc5bc0 to 569ce87 Compare August 24, 2026 15:05
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from 569ce87 to e10f8c2 Compare August 24, 2026 15:40
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from e10f8c2 to 34f7323 Compare August 24, 2026 15:46
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch 2 times, most recently from 9259683 to f7ab21c Compare August 24, 2026 15:53
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from f7ab21c to ded877b Compare August 24, 2026 15:57
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch 2 times, most recently from 2633a2f to b47a8f8 Compare August 24, 2026 16:22
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from b47a8f8 to d4b2094 Compare August 24, 2026 16:26
Base automatically changed from refresh-sigstore-trusted-root to verify-sigstore-attestation August 24, 2026 16:26
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch 2 times, most recently from 1cb8639 to d2732a7 Compare August 25, 2026 08:43
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from d2732a7 to bab3ae9 Compare August 25, 2026 08:45
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from bab3ae9 to f787ebf Compare August 25, 2026 09:53
@mosuem
mosuem changed the base branch from verify-sigstore-attestation to refresh-sigstore-trusted-root August 25, 2026 10:48
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch 2 times, most recently from e1e2fe3 to 76c99be Compare August 25, 2026 16:11
- Store verified Sigstore provenance repository in ResolvedHostedDescription and pubspec.lock.
- Cache provenance in $PUB_CACHE/hosted-provenance/.
- Enforce ProvenancePolicy.enforcePolicy during SolveResult.downloadCachedPackages against _previousLockFile to prohibit downgrading from signed to unsigned packages and detect repository switches.
- Add unit tests for provenance parsing, serialization, and policy enforcement.
@mosuem
mosuem force-pushed the enforce-lockfile-provenance branch from 76c99be to e4b4a69 Compare August 26, 2026 11:06
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