Skip to content

fix: make the installers refuse unverified binaries - #107

Merged
Bccorb merged 1 commit into
mainfrom
fix/installers-fail-closed
Oct 20, 2026
Merged

Bccorb merged 1 commit into
mainfrom
fix/installers-fail-closed

Conversation

@Bccorb

@Bccorb Bccorb commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Closes #106

Problem

  • install.sh: when SHA256SUMS.txt could not be downloaded it printed "skipping verification" and installed anyway.
  • install.ps1: the whole check sat in a try whose catch only wrote a warning, so even a checksum mismatch installed the binary. A sums file without an entry for the binary also passed ($expected was empty).

Change

Both installers now fail closed. They stop with an error if the sums file cannot be fetched, has no entry for the binary, or the hash does not match. README and RELEASE.md say so, and a patch changeset is included.

Verification

  • install.sh end to end: installed v1.3.0 into a scratch directory, and glance --version prints Seamless Glance v1.3.0.
  • install.sh with the checksum URL pointed at a missing file, a wrong hash, and a sums file with no entry for the binary: each one stops with an error and installs nothing.
  • install.ps1 (pwsh 7.4 in Docker, no Windows host here): the script parses, and the new verification block, run against good, wrong-hash, no-entry and missing sums files, proceeds only for the good one. The download and install steps were not exercised on Windows.

No Rust changes, so no cargo checks were run.

install.sh installed without a check when SHA256SUMS.txt could not be downloaded, and install.ps1 only warned, even on a checksum mismatch. Both now stop unless the binary matches its entry in the release's SHA256SUMS.txt.

Closes #106
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.

Installers install unverified binaries when the checksum is missing or wrong

1 participant