Anyone can deposit USDC amounts approved by others into the MoneyShelf contract.
If users want to deposit, they need to first approve USDC to the MoneyShelf contract, The MoneyShelf::depositUSDC() function has an issue—it allows the deposit of USDC approved by others
Users can call the Laundrette::depositTheCrimeMoneyInATM() function, passing in the approved address and amount allocated to the MoneyShelf contract, thus enabling the deposit of USDC from others and obtaining CrimeMoney.
POC
Place the PoC into test/Laundrette.t.sol.t.sol, and execute with
Can deposit USDC approved by others into the MoneyShelf contract and obtaining CrimeMoney, Free money!
Manual review, Foundry
Add the isAuthorizedOrRevert modifier to the depositTheCrimeMoneyInATM() function
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.