Skip to content

Release workflow: pin the driver by SHA-256, not Authenticode - #24

Merged
whoisaldo merged 1 commit into
mainfrom
revamp/m9-release-fix
Aug 26, 2026
Merged

Release workflow: pin the driver by SHA-256, not Authenticode#24
whoisaldo merged 1 commit into
mainfrom
revamp/m9-release-fix

Conversation

@whoisaldo

Copy link
Copy Markdown
Owner

The first release dry run (run 32994199993) failed at the driver-signature gate — correctly, because upstream's setup wrapper is genuinely unsigned (NotSigned). The signed component is the driver package inside, which Windows itself validates at install time; a hard Authenticode gate on the wrapper can never pass.

This replaces it with the check that's actually stronger for supply-chain pinning: the workflow verifies the vetted asset's SHA-256 (ca10b85b…, matching the 5,516,873-byte asset on the 25.5.2 tag) and hard-fails on mismatch, so a re-tagged or replaced upstream asset can't slip into a release. Authenticode status is still reported informationally in case upstream starts signing. DECISIONS.md and the vendor README now describe the real scheme, and build-installer.ps1 -StrictSignature stays as a local knob for future signed drivers.

After merge: re-dispatch the release.yml dry run to validate the whole pipeline.

The first dry run failed exactly where it should: upstream's setup wrapper
(Virtual.Display.Driver-v25.05.03-setup-x64.exe) is unsigned —
Get-AuthenticodeSignature reports NotSigned. The signed component is the
driver package inside it, which Windows validates at install time, so a
hard Authenticode gate on the wrapper can never pass.

Replace it with the stronger check that does work: the workflow pins the
vetted asset's SHA-256 (ca10b85b…) and hard-fails on mismatch, so a
re-tagged or replaced upstream asset can't slip into a release. The
Authenticode status is still reported informationally in case upstream
starts signing. build-installer.ps1's -StrictSignature stays as a local
knob for future signed drivers; CI no longer passes it. DECISIONS.md and
the vendor README now describe the real scheme (the old README wrongly
promised the wrapper would verify as Valid).
@whoisaldo
whoisaldo merged commit 3e4e4f7 into main Aug 26, 2026
4 checks passed
@whoisaldo
whoisaldo deleted the revamp/m9-release-fix branch August 26, 2026 17:35
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