A mischievous collector can claim multiple times.
There is no check to ensure that a collector has not already claimed what they were entitled to. As a result, a mischievous collector can run the claim function with the same arguments multiple times and drain the smart contract of all its funds.
One collector can claim all the airdropped funds, leaving nothing for the other collectors.
The following Foundry test shows how this bug can be easily exploited:
To fix this issue, you should implement a mapping that tracks the collectors who have already withdrawn their funds. This will prevent them from claiming multiple times.
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.