The initialize() function in the PerpetualVault.sol contract is responsible for setting up the initial state of the vault. Two critical parameters of this function, minDepositAmount and maxDepositAmount, are set through input values.
However, the function initialize() is missing the following implementations:
The protocol documentation specifies that minDepositAmount should be 1000 and maxDepositAmount should be 100000. However, these values are not declared/assigned in the code.
The initialize() function does not validate the values of minDepositAmount and maxDepositAmount. This means the parameters minDepositAmount & maxDepositAmountcan be set to 0any other arbitrary value.
The values of the parameter minDepositAmountmust not be greater than maxDepositAmount
If minDepositAmount is not set to 1000 as defined in documentations, users can deposit very small amounts, which might not align with the protocol's intended use.
If maxDepositAmount is not limited to 100000, the vault could accept deposits beyond the intended limit, potentially leading to liquidity issues or mismanagement of funds.
If minDepositAmount is set to 0, users can deposit any amount (even 0), which could lead to a useless or malicious vault.
If maxDepositAmount is set to 0, no deposits will be allowed, making the vault unusable.
Modify and make an addition to the initialize() function to perform a check and validate the values of both parameters minDepositAmount& maxDepositAmount within the limits (as defined in the documentation).
Applying this fix will prevent vault misconfiguration and ensure proper operation considering the value limitations declared in the documentation.
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.