Normal behavior: After the airdrop is finished, the owner might want in the future to airdrop to different accounts some tokens. This is normally achieved by a mechanism restricted only to the owner to update the merkle root with a new one.
Issue: In the MerkleAirdrop.solthere is an unused event called event MerkleRootUpdated. It is supposed to be emitted when the merkle root is updated but the code for updating the root is not present.
Likelihood:
Likelihood: medium: This can only occur if the owner decides that he wants to airdrop tokens to new accounts or after the airdrop is finished , the owner wants later at some point in time to airdrop to different accounts.
Impact:
Impact: High. Contract is only working for the current merkle root and there is no mechanism to update it which means this contract can be used only one time for airdropping usdc to the selected 4 accounts.
The 4 selected claimer accounts claim their airdrop.
Time passes and the owner has another airdrop of USDC to different accounts
Now this is impossible to be achieved since the smart contract doesn not have a function to update the merkle root
Consider including a new function that is controlled only from the owner for updating the storage of the merkle root
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.