The vulnerability identified relates to the use of IERC20.transferFrom
without proper error handling in the FjordAuctionFactory
contract. Certain ERC20 tokens do not revert on failure but instead return false
. This issue may lead to undetected transfer failures, which could have serious consequences for the integrity of the contract.
Found in src/FjordAuctionFactory.sol
at Line 63
@>: Some tokens do not revert on failure, but instead return false (e.g. ZRX, EURS). While this is technically compliant with the ERC20 standard, it goes against common Solidity coding practices and may be overlooked by developers who forget to wrap their calls to transfer in a require.
This vulnerability could lead to silent failures in the createAuction
function. If the auctionToken
does not revert but instead returns false
on failure, the contract may assume that the transfer was successful when it was not. This could result in auctions being created without the required tokens, leading to potential loss of funds for bidder
and degraded protocol reliability.
Manual Review
It is recommended to use OpenZeppelin's SafeERC20 library or Solmate's SafeTransferLib to ensure that ERC20 operations are handled safely and that any errors are detected and handled correctly.
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.