The ERC721 contract constructor incorrectly assigns msg.sender to the registry variable instead of _registry, which is the intended parameter. This error causes the contract to reference an incorrect address, potentially leading to functionality issues when interacting with the CharityRegistry. Proper initialization with _registry is required to ensure correct and secure interactions.
Here is the malicious code:
This misassignment can lead to failed interactions with the intended registry, compromising the contract’s intended functionality and potentially disrupting donation tracking.
Manual Review
To fix this issue, correct the assigned address from msg.sender to _registry to the registry variable.
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.