CI Bug Let Broken Signature Verifier Pass Tests by Never Actually Running
A software catalogue pipeline's Authenticode signature checker silently failed on GitHub's Windows CI runners, returning INVALID for every binary regardless of its actual signature status. The root cause was a PowerShell version conflict: the script invoked Windows PowerShell 5.1, which inherited a PSModulePath pointing to PowerShell 7 modules it could not load, preventing Get-AuthenticodeSignature from executing at all. Because the verdict mapping defaulted to INVALID on any error, the broken tool was indistinguishable from a strict, functioning verifier. The flaw went undetected for three CI cycles partly because a self-test case asserting 'status is not VALID' passed correctly — satisfied by a tool that never ran. The fix involved unsetting PSModulePath entirely before spawning the child process, allowing each PowerShell version to compute its own default module path.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in