In the SpiceAuction: bid()
function we use the balanceOf()
function before and after the safeTransferFrom()
to check the amount but that introduces vulnerabilities of A DOS attack.
Consider this scenario:
1.Bob bids 1 ether
2.Alice attempts to bid 2 ether
3.Bob manages to send 1 Wei to the _recipient
just before the IERC20(bidToken).balanceOf(_recipient)
happens
4.The _recipent
balance is now 1 ether and 1Wei
5.Alice's bid(2 ether)
call reverts because:
So Bob can keep doing this and DOSing as many users as he can to increase the percentage of the TGLD he gets
High
manual review
1.Implement a minimum bid amount to increase the cost of the attack in order to discourage attackers
OR
2.Change the check from !=
to<
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.