DaiGoldAuction.sol#bid
function has no slippage control.
So the bidders who bid large amount at a time may lose funds.
DaiGoldAuction.sol#bid
function is the following.
As can be seen, the function has no slippage control parameter.
Scenario:
Now assume that epochInfo.totalAuctionTokenAmount = 100 TGLD
, the expected price of TGLD
is 0.1 DAI
and epochInfo.totalBidTokenAmount = 5 DAI
.
Since the auction is profitable as long as totalBidTokenAmount
is less than 10 DAI
, bidder1
calls bid
function with amount = 5 DAI
.
While the tx stays in mempool, bidder2
executes bid
function also with amount = 5 DAI
.
As a result, the totalBidTokenAmount
will be 15 DAI
and the bidder1
and bidder2
will receive 33.3 TGLD
respectively for their 5 DAI
, which means that the bidders lost funds of about 1.66 DAI
respectively.
This issue may damage the bidders who bid large amount of DAI at a time.
The same problem exists in SpiceAuction.sol#bid
function too.
Manual Review
Modify the DaiGoldAuction.sol#bid
function as follows.
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.