Relevant GitHub Links
Summary
getsAmountsIn in GMXOracle hardcoded 15e14(15bps) for amountsIn would gives wrong amountsIn since GMX market has dynamic impact fee.
With Reference to GMXv2, they have an impact pool which holds the fund collected from depositor who deposit on the imbalanced side of the market, namely a bigger cumulative vritualBalance. The fee is also documented here
plain textMarketUtils.distributePositionImpactPool( params.dataStore, params.eventEmitter, market.marketToken );
Therefore the getsAmountIn may not be sufficient for the deposit/rebalance, if the the rebalance is done in a while that is against the incurred impact price fee.
Vulnerability Details
Impact
getsAmountsIn hardcoded 15bps for buffer which may not be representative of the dynamic fee implemented in GMXv2.
Tools Used
Recommendations
There is a script to calculate/verify the impact against tradeSize off-chain here