In the protocol, block.timestamp
is used to check the end of the bidding period.
In the start
function is code decicated for set the bidding_end
variable. This variable sets end of bidding period in the protocol.
Next, this variable is used in the end
function to determine the conclusion of the bidding period.
assert(time >= self.bidding_end.read(), 'Auction is not yet ended');
block.timestamp
is bad approach to check end of the bidding period. For details behind this vulnerability pleas check https://solidity-by-example.org/hacks/block-timestamp-manipulation/
The validator provider can modify block.timestamp
, creating a potential weakness in the protocol. And as a result, this can break the protocol.
manual review
A better approach is to use modifiers for functions or boolean flags to lock or unlock the protocol. This adds a layer of control and security, reducing the risk of timestamp manipulation and enhancing the protocol’s integrity.
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.