The contract owner has significant control over critical functions, such as setting data feeds, thresholds, and keeper addresses. This centralization creates a single point of failure and opens the door for malicious or accidental misuse.
this vulnerability can be found in the following lines of the code
The owner sets a malicious data feed address, allowing them to manipulate price validation.
The owner removes all keepers, disrupting protocol operations.
The owner can set an arbitrary threshold, potentially bypassing price validation checks.
The owner can set an arbitrary time window, potentially allowing stale price data to be used.
Example:
function setDataFeed(address token, address feed, uint256 _maxTimeWindow, uint256 _threshold) external onlyOwner {
dataFeed[token] = feed;
maxTimeWindow[token] = _maxTimeWindow;
priceDiffThreshold[token] = _threshold;
}
If feed is set to a malicious address, price validation can be bypassed.
Malicious or negligent actions by the owner could lead to fund loss, protocol disruption, or loss of user trust.
Implement a multi-signature mechanism for critical owner actions.
Use a timelock for parameter changes to allow users to react to updates.
Transition to a DAO structure to decentralize control over the contract.
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."
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."
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.