Normal behavior: Withdrawals of previously failed transfers should only allow the rightful beneficiary to withdraw their own credited balance.
Issue: withdrawAllFailedCredits(address _receiver) reads credits for _receiver but transfers to msg.sender and zeros failedTransferCredits[msg.sender] — enabling theft and replay withdrawa
Likelihood:
Any caller can invoke this function with _receiver set to a victim address holding failedTransferCredits — occurs whenever failedTransferCredits[victim] > 0.
Repeated calls will succeed until contract funds depleted because victim's stored credit remains unchanged.
Impact:
Immediate theft of credited ETH (transfer to attacker).
Persistent drain (attacker can repeatedly call and receive same funds if credits not cleared correctly),ncept
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.