Skip to content

security: verify Windows release archive checksum/signature before extraction (install.ps1 + self-upgrade) #954

@anandgupta42

Description

@anandgupta42

Found during the v0.8.8 release review (CTO + Tech Lead, P2 deferred).

install.ps1 performs no SHA256/signature verification of the downloaded release archive before Expand-Archive; integrity relies entirely on HTTPS to github.com. The same gap applies to the Windows self-upgrade path (upgradePowershell does irm | iex of the same unverified script). A compromised release asset, a TLS-defeating MITM, or a release-pipeline mistake would be silently extracted and executed as altimate.exe.

This matches the existing bash-installer posture (the script comment is honest about it), so it is deferred — the real fix is release-side, then verify in both installers:

  1. Release workflow publishes a checksums.txt (ideally a cosign/minisign signature) per release asset.
  2. Both install.ps1 and the bash install verify the downloaded archive's SHA256 against it before extraction.

Deferred because it requires release-pipeline + signing design work, not an in-repo patch, and does not regress the already-shipping bash posture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions