This report details a constructor vulnerability identified in the GivingThanks contract's constructor.
In GivingThanks::constructor: msg.sender can not be both CharityRegistry and the caller, as CharityRegistry is not a utility contract, it does not implement the functionality of calling other contracts, deploying them. In other words, registry should be set to CharityRegistry(_registry) according to the README.
This vulnerability could lead to the GivingThanks contract being initialized with an incorrect CharityRegistry address, potentially causing donations to be sent to unintended recipients.
Formal Verification(None)
Change CharityRegistry(msg.sender) to CharityRegistry(_registry) in the constructor.
Likelyhood: High, the parameter is not well used and won't be set. Impact: Low, can be changed with the setter and no one will be able to donate to malicious charity.
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.