The withdrawAllFailedCredits function contains a critical access control vulnerability where it reads the credit amount from the _receiver parameter but resets credits for msg.sender and sends funds to msg.sender. This allows any attacker to steal failed transfer credits belonging to other users by simply passing the victim's address as the _receiver parameter.
Likelihood:
when there is failed transfer credits
Impact:
Complete theft of all users' failed transfer credits by any malicious actor
Critical financial loss with no recovery mechanism for victims
withdrawAllFailedCredits allows any user to withdraw another account’s failed transfer credits due to improper use of msg.sender instead of _receiver for balance reset and transfer.
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.