safeTransferFrom() called in the depositTokensToL2() function allows for the passing of an arbitrary 'from' address.
If user1 has approved token transfer to the vault contract, then other approved users can call eg.. deposit(user1, userx, 100) in order to steal tokens from user1, deposit them to the bridge and have the corresponsing L2 tokens minted on userx address.
direct stealing of funds
change the 'from' address parameter to msg.sender
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.