Skip to content

Fix Authenticode CI validation with psign 0.6.2 - #5

Merged
Marc-André Moreau (mamoreau-devolutions) merged 2 commits into
masterfrom
copilot/fix-ci-job-failure
Aug 11, 2026
Merged

Fix Authenticode CI validation with psign 0.6.2#5
Marc-André Moreau (mamoreau-devolutions) merged 2 commits into
masterfrom
copilot/fix-ci-job-failure

Conversation

@mamoreau-devolutions

@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Windows packages dry-run failed validating ACS-signed PEs: timestamp required by policy but no cryptographically valid trusted RFC3161 timestamp token was found.
  • Signatures were good (Windows Authenticode Valid). The bug was in psign 0.6.1 portable RFC3161 trust.

Fix

  • Bump CI psign-tool pin to 0.6.2 (psign-tool-linux-x64.zip SHA256 updated).
  • Restore full portable trust policy for project-owned PEs:
    psign-tool portable trust-verify-pe \
      --prefer-timestamp-signing-time \
      --require-valid-timestamp \
      --allow-loose-signing-cert \
      --online-aia
    
  • Keep verify-pe + signer CN checks for project-owned and Microsoft runtime PEs.
  • Keep an explicit embedded RFC3161 attribute presence check on project-owned PEs for clearer failures.

Upstream

Failed run

https://github.com/Devolutions/windbg-tool/actions/runs/31491249545/job/93780036559

psign 0.6.x rejects real Microsoft ACS RFC3161 tokens under
--require-valid-timestamp, which broke the release dry-run after
signature validation was added. Validate PE digests and signer CNs
for all packaged binaries, require an embedded RFC3161 attribute on
project-owned PEs, and trust-verify those with allow-loose + online
AIA instead of the broken require-valid-timestamp flag.
@mamoreau-devolutions

Copy link
Copy Markdown
Contributor Author

Confirmed with a psign investigation session:

  • ACS-signed PE signatures are good (Windows Valid + embedded MS nested RFC3161).
  • Failure was psign portable trust, not Trusted Signing.
  • Upstream fix: fix(portable-trust): accept ACS/Microsoft RFC3161 timestamp tokens psign#30
  • After that lands in a published psign release, bump the pin here and restore --require-valid-timestamp (keep --allow-loose-signing-cert --online-aia for ACS EKU/AIA).

Use the released portable trust fix for ACS/Microsoft RFC3161 tokens and
re-enable --require-valid-timestamp with loose EKU + online AIA for
project-owned signed PEs.
@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) changed the title Fix Authenticode CI validation for ACS timestamps Fix Authenticode CI validation with psign 0.6.2 Aug 11, 2026
@mamoreau-devolutions

Copy link
Copy Markdown
Contributor Author

psign 0.6.2 is published. This PR now:

  1. Pins PSIGN_VERSION=0.6.2 + linux-x64 zip SHA256
  2. Restores --require-valid-timestamp (with --prefer-timestamp-signing-time --allow-loose-signing-cert --online-aia) for project-owned ACS PEs

@mamoreau-devolutions
Marc-André Moreau (mamoreau-devolutions) merged commit f0eaa7f into master Aug 11, 2026
2 checks passed
@mamoreau-devolutions
Marc-André Moreau (mamoreau-devolutions) deleted the copilot/fix-ci-job-failure branch August 11, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant