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

Lack of Explicit Reentrancy Protection on Critical External Interactions

GmxProxy.sol

Observation:
While many parts of the protocol use nonReentrant modifiers, GmxProxy’s critical functions such as createOrder and settle do not explicitly apply reentrancy guards. They interact with external contracts (e.g. gExchangeRouter) and update state (e.g. writing to the global queue) without protection against reentrant calls.

Validated Issue:
Even though these functions are restricted (e.g. only callable by the trusted PerpetualVault), any unforeseen behavior from an external contract or a misconfiguration in the vault might allow an attacker to trigger reentrant calls. For instance, if gExchangeRouter or one of its callbacks were to call back into GmxProxy (directly or indirectly), it could potentially overwrite the queue or manipulate execution fee transfers—undermining the protocol’s expected state transitions and financial calculations.

Recommendation:
Apply a nonReentrant modifier (or equivalent reentrancy protection) on functions that perform external calls and update global state, such as createOrder and settle. This extra layer of defense will help ensure that even if an external call behaves unexpectedly, the internal state remains consistent.

Updates

Lead Judging Commences

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

Suppositions

There is no real proof, concrete root cause, specific impact, or enough details in those submissions. Examples include: "It could happen" without specifying when, "If this impossible case happens," "Unexpected behavior," etc. Make a Proof of Concept (PoC) using external functions and realistic parameters. Do not test only the internal function where you think you found something.

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

Suppositions

There is no real proof, concrete root cause, specific impact, or enough details in those submissions. Examples include: "It could happen" without specifying when, "If this impossible case happens," "Unexpected behavior," etc. Make a Proof of Concept (PoC) using external functions and realistic parameters. Do not test only the internal function where you think you found something.

Support

FAQs

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

Give us feedback!