Reentrancy guard on external-calling functions
Multipli's assessment for RD-F-014 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
Core user functions (deposit, mint, requestRedeem, requestInstantRedeem, flashRedeem) carry nonReentrant. The manage() function performs external calls via functionCallWithValue() with requiresAuth only — no nonReentrant guard. Attack surface is constrained to authorized FUND_MANAGER_ROLE holders, not general users. VaultFundManager functions (removeFundsFromVault, updateUnderlyingBalance, addFundsAndFulfillRedeem, flashRedeem) have nonReentrant.
Sources #
- EtherscanVaultFundManager — nonReentrant on critical functionsSnowtrace — VaultFundManager nonReentrant confirmedretrieved 2026-05-17
- MultipliVault implementation — reentrancy guard analysisSnowtrace — MultipliVault impl manage() without nonReentrant; user functions with nonReentrantretrieved 2026-05-17
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 →