Reentrancy guard on external-calling functions
Liquid Collective (LsETH)'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 #
River.1.sol uses balance-delta validation pattern rather than explicit nonReentrant for _pullELFees, _pullCoverageFunds, _pullCLFunds. WLSETH.1.sol has nonReentrant on transfer and transferFrom added in commit 964f0e3 (Apr 2026). Not all external-calling functions carry explicit guards — River.1.sol relies on checks-effects pattern. Multiple Spearbit reviews would have flagged exploitable reentrancy; none found. Yellow for partial coverage without full guard adoption.
Sources #
- GitHubGitHub Commit 964f0e3 — nonReentrant added to WLSETHCommit 964f0e3 adding nonReentrant to WLSETH.1.sol transfer/transferFromretrieved 2026-05-17
- River.1.sol sourceRiver.1.sol — balance-delta pattern, no nonReentrant on pullELFees/pullCoverageFundsretrieved 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 →