DeFiFoundry
50,000 USDC
View results
Submission Details
Severity: low
Invalid

Inconsistency of logic of function setLockTime with requirement from docs

Summary

The documentation requires setting lock Time for more than one day, but the 'setLockTime` function does not check this condition.

Vulnerability Details

The documentation says about the limits for different configuration parameters:

4.What are the limitations on values set by admins in the codebase?

...

  • lockTime > 1 day

...

but the implementation does not check this condition.

/**
* @notice Sets the lock time.
* @param _lockTime The new lock time.
*/
function setLockTime(uint256 _lockTime) external onlyOwner {
lockTime = _lockTime;
}

Impact

An unintentional mistake by the owner, who puts 0 or 1 in lockTime, opens the way to manipulation of fast deposits and withdrawals.

Tools Used

Recommendations

Add require to function, add an event and add an upper bound on lockTime (e.g.10 week for business security reasons):

event NewLockTime(uint256 blocktime, uint256 newLockTime);
function setLockTime(uint256 _lockTime) external onlyOwner {
require(_lockTime > 1 days && _lockTime < 10 weeks, "lock time is less than required");
lockTime = _lockTime;
emit NewLockTime(block.timestamp, _lockTime);
}
Updates

Lead Judging Commences

n0kto Lead Judge 8 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Admin is trusted / Malicious keepers

Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point. Keepers are added by the admin, there is no "malicious keeper" and if there is a problem in those keepers, that's out of scope. ReadMe and known issues states: " * System relies heavily on keeper for executing trades * Single keeper point of failure if not properly distributed * Malicious keeper could potentially front-run or delay transactions * Assume that Keeper will always have enough gas to execute transactions. There is a pay execution fee function, but the assumption should be that there's more than enough gas to cover transaction failures, retries, etc * There are two spot swap functionalies: (1) using GMX swap and (2) using Paraswap. We can assume that any swap failure will be retried until success. " " * Heavy dependency on GMX protocol functioning correctly * Owner can update GMX-related addresses * Changes in GMX protocol could impact system operations * We can assume that the GMX keeper won't misbehave, delay, or go offline. " "Issues related to GMX Keepers being DOS'd or losing functionality would be considered invalid."

n0kto Lead Judge 8 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Admin is trusted / Malicious keepers

Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point. Keepers are added by the admin, there is no "malicious keeper" and if there is a problem in those keepers, that's out of scope. ReadMe and known issues states: " * System relies heavily on keeper for executing trades * Single keeper point of failure if not properly distributed * Malicious keeper could potentially front-run or delay transactions * Assume that Keeper will always have enough gas to execute transactions. There is a pay execution fee function, but the assumption should be that there's more than enough gas to cover transaction failures, retries, etc * There are two spot swap functionalies: (1) using GMX swap and (2) using Paraswap. We can assume that any swap failure will be retried until success. " " * Heavy dependency on GMX protocol functioning correctly * Owner can update GMX-related addresses * Changes in GMX protocol could impact system operations * We can assume that the GMX keeper won't misbehave, delay, or go offline. " "Issues related to GMX Keepers being DOS'd or losing functionality would be considered invalid."

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.