Small Shamrock Rook
High
Minting nuAssets and burning nuAssets both call vaultManager.updateBuyFeePid()
based on the NUMA amount minted or burned.
However, both of these use the vaultBuy=false
parameter (since they are not vault buys), which causes them to reduce the buy_fee_PID
.
This allows anyone to repeat minting and burning a nuAsset (delta-neutral) to reduce the buy_fee_PID to 0
vaultManager.updateBuyFeePID(_numaAmount, false);
(The above logic is used in both mintNuAsset()
and burnNuAssetFrom()
)
Calling vaultManager.updateBuyFeePid()
will decrease the buy_fee_PID
in both cases.
No response
No response
- Burn NUMA to mint a nuAsset
- Mint NUMA by burning the nuAsset
- Repeat the above steps until
buy_fee_PID
is equal to zero - Now, in the same transaction, we can liquidate many rETH borrowers since the vault buy price of NUMA has decreased significantly
buy_fee_PID
can be atomically reduced to 0
Liquidation conditions can be achieved atomically, and the attacker can profit via the liquidation bonus
No response
No response