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.