-
-
Notifications
You must be signed in to change notification settings - Fork 55
Description
https://en.wikipedia.org/wiki/XZ_Utils_backdoor for context.
install-action verifies checksums & signatures, to detect edits to old releases. The readme explains this, but it doesnt clearly describe what happens if that verification fails. What if I am installing 4 tools using this action, and one fails verification? Does/Should it fall back to a prior release, if it can find one which does pass verification?
Going one step further, we could detect when the identity of the signer/creator of a release changes from the identity of previous releases, and not include those releases until some manual verification has occurred.
#182 would have detected yanked crates while running this action - i.e. during installation.
Given a cron schedule of updating manifests every three hours per
https://github.com/taiki-e/install-action/blob/main/.github/workflows/ci.yml#L13
One way to avoid the urgent yanking type problem is to have two streams for this action, @latest / @main , and @stable/@v2 . Then for stable users of this action, the action would not install the latest version of a crate/dep until 12 hrs after it was released, allowing plenty of time for maintainers to yank the release.
We could also use semver to further delay minor and major releases being used by @stable; e.g. a few days for minor releases, and a week or two for major releases.
IMO we should be doing more indepth analysis of binaries during the creation of the manifests , i.e. doing active vulnerability scans on the binaries.
For Rust crates, we could be checking if binaries were built using https://github.com/rust-secure-code/cargo-auditable and adding a column to the tools markdown table to give these binaries a ✔️ if they are auditable, and using the embedded SBOM to check for vulns. This type of functionality is going to be incorporated into cargo itself - currently rust-lang/rfcs#3553 , so encouraging tool creators to use cargo-auditable will help surface problems that should be considered in the RFC .
For Go, iirc osv-scanner already detects vulns in the binaries.