The normal behavior should be that users can only withdraw their own failed transfer credits from the mapping.
The BidBeastsNFTMarketplace::withdrawAllFailedCredits() function has a critical access control flaw where anyone can withdraw another user's failed transfer credits by passing their address as the _receiver parameter, but the function resets msg.sender's credits and sends the funds to msg.sender.
Likelihood:
Any attacker can call this function with any address that has failed transfer credits
The vulnerability exists in every interaction where users have accumulated failed credits
Impact:
Complete theft of any user's failed transfer credits
Loss of legitimate user funds that should be withdrawable
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.