GivingThanks::donate funciton is susceptible to Reentrancy attack since the change of the state variable comes after the external call (GivingThanks::donate function, see below code line 4). State varialbe changes below code line 14.
Foundry test
Manual review
Either of the following solutions should work.
Use Checks-Effects-Interactions Pattern indicated by the @comment in code above by moving around lines of code.
Or use openZeppelin nonReentrant modifier with the function: GivingThanks::donate. This means doing the setup such as [GivingThanks::constructor is ReentrancyGuard, then adding the modifier to the donate function].
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.