A single point of failure is not acceptable for this project #248
Labels
2 (Med Risk)
Assets not at direct risk, but function/availability of the protocol could be impacted or leak value
bug
Something isn't working
duplicate-269
satisfactory
satisfies C4 submission criteria; eligible for awards
sponsor acknowledged
Technically the issue is correct, but we're not going to resolve it for XYZ reasons
Lines of code
https://github.com/code-423n4/2022-10-paladin/blob/main/contracts/WardenPledge.sol#L18
Vulnerability details
Impact
The
pause()
function onWardenPledge.sol
has a single point of failure andonlyOwner
can stop all project.Owner is not behind a multisig and changes are not behind a timelock.(This information hasnt got in documents)
Even if protocol admins/developers are not malicious there is still a chance for admin keys to be stolen.
In addition, when we add other onlyOwner privileges, the single point of failure situation becomes stronger;
See this example where a similar finding has been flagged as a high-severity issue:
realitycards-findings
Recommended Mitigation Steps
Isolate functionu and other lightweight onlyOwner functions such as
pause()
that are very powerful and will affect the projectAdd a time lock to critical functions like
pause()
Admin-only functions that change critical parameters should emit events and have timelocks. Events allow capturing the changed parameters so that off-chain tools/interfaces can register such changes with timelocks that allow users to evaluate them and consider if they would like to engage/exit based on how they perceive the changes as affecting the trustworthiness of the protocol or profitability of the implemented financial services.
Allow only multi-signature wallets to call the function to reduce the likelihood of an attack.
https://twitter.com/danielvf/status/1572963475101556738?s=20&t=V1kvzfJlsx-D2hfnG0OmuQ
The text was updated successfully, but these errors were encountered: