Skip to content

fix(update): run the exact cosign the trust guard approved - #878

Merged
indaco merged 1 commit into
mainfrom
fix/pin-self-update-verifier-resolution
Aug 20, 2026
Merged

fix(update): run the exact cosign the trust guard approved#878
indaco merged 1 commit into
mainfrom
fix/pin-self-update-verifier-resolution

Conversation

@indaco

@indaco indaco commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Description

mt version update could check a release signature with a cosign the trust guard never approved. The guard vetted one binary and the spawn resolved another, so a shim dropped inside malt's own prefix - a directory every installed package can write to - could rubber-stamp the update. The guard now hands the resolved path straight to the spawn, and a candidate it cannot resolve is skipped rather than trusted.

Related Issue

  • None

Notes for Reviewers

  • A cosign reached through a symlink is now executed by its resolved target rather than the link. That is deliberate: the link is what an attacker in the prefix would control.
  • The guard walks past a candidate it cannot resolve instead of refusing outright, so a transient filesystem error on one PATH entry no longer fails an update that a later entry would have satisfied. Skipping stays safe because the spawn only ever runs a candidate this walk returned and vetted.

@indaco
indaco merged commit ca02c42 into main Aug 20, 2026
3 checks passed
@indaco
indaco deleted the fix/pin-self-update-verifier-resolution branch August 20, 2026 16:51
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