GivingThanks

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

[M-1] Logical error in CharityRegistry::isVerified() function, leads to incorrect response

Summary

The CharityRegistry::isVerified() function checks for charities verification status. The function will return 'true' or 'false' on whether the charity is verified. However, there is a logical flaw in the function that will not return the correct response on whether the charity is verified or not.

Vulnerability Details

The CharityRegistry::isVerified() function is supposed to be returning the 'verifiedCharities' mapping, but instead it is returning the 'registeredCharities' mapping.

function isVerified(address charity) public view returns (bool) {
@> return registeredCharities[charity];
}

Impact

This logical error may lead to incorrect responses when checking if a charity is verified.

E.g:

  1. Charity is registered = True.

  2. Charity is verified = False

  3. CharityRegistry::isVerified() returns the mapping of 'registeredCharities', which in this case will return 'True'

  4. Incorrect response misleading user of their true charity verification status.

Tools Used

Manual code review

Recommendations

Update the return statement to return the correct mapping 'verifiedCharities'.

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

Lead Judging Commences

n0kto Lead Judge 12 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.