An auction config can be changed if an auction is not active at that time. This is a rule for both DaiGoldAuction and SpiceAuction.
In both DaiGoldAuction
and SpiceAuction
contract, there is a validation for when a config can be changed. There shouldn't be an Active auction at the time.
Consider this scenario:
1) in case anyone can call startAuction() in both DaiGoldAuction and SpiceAuction
2) The current auction has ended, so it's the perfect time for the admin to change some config of those auctions
3)An admin triggers a tx. For example: DaiGoldAuction.setAuctionConfig() or SpiceAuction.setAuctionConfig()
4) An attacker monitors the mempool and frontruns the admin tx. The attacker calls startAuction()
-> the current auction changes its state from Ended to Active
5) The admin txs revert because the current auction is Active now.
6) The admin has to wait until the current auction ends, to change the config. However, the next time the attacker can do the same thing and prevent the config from being updated again.
Code snippets:
DOS of DaiGoldAuction.setAuctionConfig() , setAuctionStarter(), setBidToken()
DOS of SpiceAuction.setAuctionConfig() , removeAuctionConfig()
Manual review
Consider using only trusted roles to execute startAuction()
in both Auction contracts
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.