The MoneyShelf::depositUSDC
function sends the USDC to an arbitrary address and since there are no access controls placed in Laundrette::depositTheCrimeMoneyInATM
function it allows anyone to call the deposit function using the address of the accounts which approved the USDC to the MoneyShelf
and steal the CrimeMoney
.
If a user approves USDC to the MoneyShelf
then any one can call MoneyShelf::depositUSDC
using the Laundrette::depositTheCrimeMoneyInATM
function and steal the CrimeMoney
.
Prerequisites: For the following test to work add a new address address caponeBege = makeAddr("Capone Bege");
in the Base.t.sol
To the Laundrette::depositTheCrimeMoneyInATM
function add the modifier Laundrette:: isAuthorizedOrRevert
which will prevent the arbitrary 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.