Skip to content

Upgraded Q -> 2 from #327 [1686724891862] #426

Closed
@c4-judge

Description

@c4-judge

Judge has assessed an item in Issue #327 as 2 risk. The relevant finding follows:

L-04 addBid does not increment the endBlock of the auction when it is close to the end, preventing the protocol from capturing extra value
When an Auction is created, it sets a lotItem.endBlock. This value remains unalterable.

This incentives users to place a bid via Auction::addBid(), on the last possible block, as it does not perform any increment on the lotItem.endBlock.

function addBid(uint256 lotId) external payable override whenNotPaused {
    // reject payments of 0 ETH
    if (msg.value == 0) revert InSufficientETH();

    LotItem storage lotItem = lots[lotId];
    if (block.number > lotItem.endBlock) revert AuctionEnded();

    uint256 totalUserBid = lotItem.bids[msg.sender] + msg.value;

    if (totalUserBid < lotItem.highestBidAmount + bidIncrement) revert InSufficientBid();

    lotItem.highestBidder = msg.sender;
    lotItem.highestBidAmount = totalUserBid;
    lotItem.bids[msg.sender] = totalUserBid;

    emit BidPlaced(lotId, msg.sender, totalUserBid);
}

Link to code

Impact
This prevents the protocol from capturing more value on last minute bids, which is common practive

It discourages earlier participation, and encourages bidders to rather spend more on gas fees to place the bid on the last possible block, rather than providing a bigger bid that will result in more value to the protocol.

Recommended Mitigation Steps
Add some extra blocks to the lotItem.endBlock if there is a bid when the auction is close to its end.

Metadata

Metadata

Assignees

No one assigned

    Labels

    2 (Med Risk)Assets not at direct risk, but function/availability of the protocol could be impacted or leak valueduplicate-70satisfactorysatisfies C4 submission criteria; eligible for awards

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions