GivingThanks

First Flight #28
Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: high
Valid

Require Owner in `updateRegitry` function.

Vulnerability Details

In GivingThanks.sol, if this function is not restricted to onlyowner modifier or msg.sender requirement, anyone can update address as this is a public function.

function updateRegistry(address _registry) public {
registry = CharityRegistry(_registry);
}

Impact

  • Anyone/malicious actor can updateRegistery and then call donate function which will lead to loss of funds

  • Also it'll impact the integrity & trust.

Tools Used

Manual Review

Recommendations

  • Use OpenZeppelin’s Ownable.sol for Admin Management.

function updateRegistry(address _registry) public onlyOwner {
registry = CharityRegistry(_registry);
}
  • Or Use Require Check.

function updateRegistry(address _registry) public {
require(msg.sender == admin, "only admin can update registry")
registry = CharityRegistry(_registry);
}
Updates

Lead Judging Commences

n0kto Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

finding-anyone-can-change-registry

Likelyhood: High, anyone can change it at anytime Impact: High, can bypass the verification process

Support

FAQs

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