Admin has high authority in the entire project. The power and role of this identity are very large, and the contract cannot be upgraded. It is necessary to strictly check whether the Admin's address is legal.
In the Adminable.sol::transferAdmin() function, the parameter newAdmin
is not checked, but the value of admin
is directly updated and replaced, which poses a security risk.
The bad impact of this will be the loss of the admin
identity and the inability to call all functions with the onAdmin()
modifier, which will cause the project to lose autonomy.
Manual analysis.
It is best to refer to the logic of Openzeppenlin:Ownable2Step.sol and perform secondary verification when transferring admin
permissions.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.