This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Description
In the CLI setup instructions: https://docs.rocketpool.net/guides/node/docker.html#downloading-the-rocket-pool-cli
It was the user to wget a url, give it execution permissions and run it.
The file downloaded is an 18MB binary that does who knows what. There doesn't seem to be a way that I can verify this binary corresponds to the code in: https://github.com/rocket-pool/smartnode
So the only encouragement that running this code is in any way trustworthy is that it in an https url.
There are several mitigations that could be done to increase the security posture of this critical step:
- Sign the binaries (e.g. with gpg keys from trusted community members).
- Release expected sha256 / sha512 hashes of the binaries so users can verify they have something expected.
- Release the binaries on IPFS in addition to github
- Add a section to the docs that provides instructions on how to build the CLI from source.
The first 3 options make a modified binary attack much harder. Signing the binaries gives as much confidence as the chain of trust provides, which can be a little or a lot. Publishing hashes makes it much easier to automate setting up nodes that pin to a specific version of the CLI. Publishing on IPFS has similar benefits to the hashes in addition to providing a distributed means of accessing the binaries rather than relying on a centralized github server.
The last option is the most impactful. Users can verify the code themselves and use the builtin security that comes with git to verify the code they are building is the code they expect to build.