TempleGold

TempleDAO
Foundry
25,000 USDC
View results
Submission Details
Severity: low
Invalid

Privileged role change in SpiceAuction::setDaoExecutor doesn't implement a two step mechanism potentially leading to loss of admin functionalities

Summary

SpiceAuction::setDaoExecutor doesn't implement a two step mechanism potentially leading to loss of admin functionalities when using an uncontrolled address

Vulnerability Details

If an uncontrolled address is set via SpiceAuction::setDaoExecutor then all of admin functionalities will be lost in the contract because there is no way to recover / reset this address:

function setDaoExecutor(address _daoExecutor) external onlyDAOExecutor {
if (_daoExecutor == address(0)) { revert CommonEventsAndErrors.InvalidAddress(); }
daoExecutor = _daoExecutor;
emit DaoExecutorSet(_daoExecutor);
}

Impact

High because if an uncontrolled wallet is set, then contract admin functionality is lost
However attack complexity is High.

Tools Used

Manual Review

Recommendations

Implement a two step set/claim mechanism for this privilege role

function proposeDaoExecutor(address _daoExecutor) external onlyDAOExecutor {
if (_daoExecutor == address(0)) { revert CommonEventsAndErrors.InvalidAddress(); }
daoExecutor = _daoExecutor;
proposedExecutor = _daoExecutor; //<- new global ct address
emit DaoExecutorSet(_daoExecutor);
}
function claimDaoExecutor() external onlyDAOExecutor {
require(msg.sender == proposedExecutor);
daoExecutor = proposedExecutor;
}
Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.