The Auction contract's constructor lacks proper input parameter validation, allowing the contract to be deployed with potentially invalid or malicious parameters that could break core functionality or create unexpected behavior.
The constructor accepts several critical parameters that determine the auction's behavior:
_startTime
and _endTime
: Temporal boundaries of the auction
_startingPrice
and _reservePrice
: Price parameters
_totalAllocated
: Total ZENO tokens available
Various address parameters (_zenoAddress
, _usdcAddress
, _businessAddress
, _initialOwner
)
None of these parameters are validated, which could lead to:
End time being set before start time
Zero or negative prices
Zero total allocation
Invalid or zero addresses being set
Prices that could cause mathematical overflow/underflow in getPrice()
The lack of input validation could result in:
Permanently broken auction functionality
Immediate end of auction upon deployment
Invalid price calculations
Unusable contract state
Loss of funds due to incorrect price calculations
Potential DOS conditions
Manual Analysis
Add comprehensive input validation in the constructor:
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.