I-1: Admin may set automators for any Sickle without explicit approval
Summary:
Automation.sol is used to enable protocol-approved accounts, controlled by off-chain infrastructure, to execute privileged actions on a user's Sickle periodically.
Description:
Automation.admin may invoke any of the following methods to create an automator for a Sickle:
These methods do not require the Sickle owner to have explicitly allowed a given automator to be set for his Sickle.
Impact:
Informational.
Recommendation:
Within the highlighted methods, add a verification step to ensure the owner of the Sickle has approved such automator. This may be achieved, for example, by verifying an ECDSA signature signed by the Sickle owner over the automator's address, the permissions granted, a nonce, and optionally a deadline timestamp.
Developer Response:
This is done one layer up, the Sickle user has to enable automation by calling setApproved on their Sickle with the address of the Automation contract.