The _approveFundsToAssetRouter
from L1ERC20Bridge.sol function uses _token.approve
and checks the success
value. This approach will revert for tokens that do not return a boolean value on approval.
Some ERC20 tokens do not return a boolean value on the approve
function, such as USDT. The current implementation of L1ERC20Bridge
assumes that the approve
function will always return a boolean value, which can lead to unexpected reverts.
The function will revert for tokens that do not return a boolean value on the approve
function, causing a denial of service in L1ERC20Bridge.deposit
for those tokens.
Manual review.
Use SafeERC20.forceApprove
from OpenZeppelin to correctly handle tokens that do not return boolean values on approve
.
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.