In DaiGoldAuction
,Attacker can start auction by calling startAuction
before elevated access address has set up auctionConfig
or auctionStarter
. This can cause DoS to elevated access functions like setAuctionConfig
, setAuctionStarter
and setBidToken
.
startAuction
doesn't check if auctionConfig
or auctionStarter
are set by an address of elevated access. So, attacker can frontrun this config setup address and calls startAuction
. The auction will be successfully started. Since setAuctionConfig
, setAuctionStarter
and setBidToken
has following check implemented, elevated access address won't be able to update the auctionConfig
, auctionStarter
or bidToken
until the auction
is ended. Once the auction ends, the attacker can again call startAuction
by frontrunning and auction will be started successfully because of config.auctionsTimeDiff
be 0
. Attacker can do this everytime auction ends. Also, the elevated access address won't be able to recover any tokens for an auction started by an attacker because config.auctionStartCooldown
will be 0
and new auction will be active
in the same block of ending of old auction.
Steps to reproduce:
1) Admin calls setAuctionConfig
.
2) Attacker frontruns the step 1 from admin and calls startAuction
. Due to this, step 1 from admin will revert.
3) Auction started by attacker ends.
4) Attacker again calls startAuction
and new auction will be started because all conditions will pass.
The attacker can cause permanent DoS to elevated access functions. Admin won't be able to update or set auctionConfig
, auctionStarter
or bidToken
.
Manual review
Add the checks in startAuction
function to ensure that config
and auctionStarter
is properly set.
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.