| Having had a quick look through this workflow it seems to miss most opportunities to ensure a safe build. - Downloads binaries for use in build with no hash/signing verification. - Doesn't pin shared actions. - Uses Yarn to install dependencies (which can involve downloading/executing arbitrary code from anywhere) - Doesn't sign the final binary. None of this is necessarily wrong, all would make maintenance harder in the long run, but it means this project is really about removing MS branding and some telemetry, and that there is a security trade-off to get those benefits. |
> - Downloads binaries for use in build with no hash/signing verification.
It downloads them using TLS.
> - Doesn't pin shared actions.
The shared actions are just @actions/checkout and @actions/setup-node. They're official. I wouldn't pin them - YAGNI.
> - Uses Yarn to install dependencies (which can involve downloading/executing arbitrary code from anywhere)
It downloads/executes code based on the carefully chosen dependencies
> - Doesn't sign the final binary.
That's platform dependent I think. For Mac OS X it does.
Seems like FUD, which you might be able to recognize because you say "None of this is necessarily wrong". Especially the part about pinning first party GitHub Actions. There would be nothing wrong with that but it is much more useful to pin third party GitHub Actions, and IMHO suboptimal to pin first party actions.