Description: The GivingThanks::donate function is vulnerable to reentrancy attacks due to state changes after external calls.
Impact:
Multiple NFTs could be minted for a single donation
Token counter could be manipulated
Potential drainage of contract funds
Proof of Concept:
Recommended Mitigation: The donate() function should be like this:
Impact: High, one charity can reenter the donate function with the same ETH provided and mint several NFT. Likelyhood: Low, any malicious charity can do it but Admin is trusted and should verify the charity contract before "verifying" it.
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.