GivingThanks

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

Anyone can be verified charity

Summary

Anyone can be verified charity by isVerified() function of CharityRegistry contract.

Vulnerability Details

Charities - Can register to receive donations once verified.

https://github.com/Cyfrin/2024-11-giving-thanks/blob/9580c8e5cfa23a00572ef6b7dfc790ba76778e4a/src/CharityRegistry.sol#L23-L25

https://github.com/Cyfrin/2024-11-giving-thanks/blob/9580c8e5cfa23a00572ef6b7dfc790ba76778e4a/src/GivingThanks.sol#L22
As you see, verified charity must be address that verifiedCharities[address] is true, but only registered charity can receive donations.

Impact

Anyone can register to receive donations without verification of admin.

Tools Used

Manual

Recommendations

Update the isVerified() function to replace registeredCharities verifiedCharities.

function isVerified(address charity) public view returns (bool) {
- return registeredCharities[charity];
+ return verifiedCharities[charity];
}
Updates

Lead Judging Commences

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

finding-isVerified-return-registered-charities

Likelyhood: High, the function returns registered charities instead of verified ones. Impact: High, Any charities can be registered by anyone and will be declared as verified by this function bypassing verification.

Support

FAQs

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