Closed sherlock-admin4 closed 8 months ago
artist/creator is by default the owner of the OwnableDiamond, please refer to Readme
Artist/Owner is trusted per comment above, but the team thinks it would be a good idea to add a check to prevent 0 minBidIncrement
regardless. Going to flip this to Confirmed but believe it would likely be low severity based on trusted admin role.
The protocol team fixed this issue in the following PRs/commits: https://github.com/RadicalxChange/pco-art/pull/13
The issue has been fixed by not allowing minBidIncrement
to be set to 0.
The Lead Senior Watson signed off on the fix.
14si2o_Flint
medium
Potential griefing attack and other negative impacts if minBidIncrement is set to 0.
Summary
The protocol gives artists full freedom to set any of initialization values as they desire. Which means that
0
can be set as a valid value forminBidIncrement
.When this happens, a user bidding the exact same amount as the highest bidder will take his place even though he did not bid more. This is because the code implicitly assumes that
minBidIncrement
will always be greater than0
.This has 3 negative effects:
Vulnerability Detail
In
_placeBid
there is a check to ensure the bidder has bid more than the current highest bid.As long as
minBidIncrement > 0
the bidAmount will always be greater than the highest outstanding bid or cause a revert.But when
minBidIncrement == 0
, a user bidding the exact same amount as the highest bid will not cause a revert since the check is greater or equal and will thus be set as the highest bidder.Impact
There are 3 impacts:
Code Snippet
https://github.com/sherlock-audit/2024-02-radicalxchange/blob/main/pco-art/contracts/auction/EnglishPeriodicAuctionInternal.sol#L305-L313
Tool used
Manual Review
Recommendation
Change the check to the below in order to account for the case of having a
minBidIncrement == 0