Reentrancy guard on external-calling functions
GMX v2 (GMX Synthetics)'s assessment for RD-F-014 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
GlobalReentrancyGuard in contracts/utils/GlobalReentrancyGuard.sol implements cross-contract reentrancy protection via DataStore state (NOT_ENTERED=0 / ENTERED=1). This directly supersedes the Dedaub Nov 2022 critical finding (cancelOrder reentrancy). SubaccountRouter uses OZ nonReentrant. Core handlers inherit GlobalReentrancyGuard for cross-contract protection.
Sources #
- URLDedaub GMX Synthetics AuditDedaub audit - critical cancelOrder reentrancy (architecturally addressed by GlobalReentrancyGuard)retrieved 2026-05-05
- GMX GlobalReentrancyGuard.solGlobalReentrancyGuard.sol - cross-contract reentrancy protectionretrieved 2026-05-05
Methodology #
Determine whether all state-mutating functions that perform external calls carry `nonReentrant` or an equivalent reentrancy guard.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol gmx-v2 factor RD-F-014 score green collected_at 2026-05-05 11:15:06