From 06ea3b1b4eb4b204021fa152b554de7ded6cc3bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Mon, 21 Apr 2025 12:02:30 -0600 Subject: [PATCH] Add Slither reentrancy exception to `GovernorTimelockAccess._queueOperations` (#5643) Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com> --- contracts/governance/extensions/GovernorTimelockAccess.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contracts/governance/extensions/GovernorTimelockAccess.sol b/contracts/governance/extensions/GovernorTimelockAccess.sol index c208c5a36..fad2510a1 100644 --- a/contracts/governance/extensions/GovernorTimelockAccess.sol +++ b/contracts/governance/extensions/GovernorTimelockAccess.sol @@ -237,6 +237,9 @@ abstract contract GovernorTimelockAccess is Governor { for (uint256 i = 0; i < targets.length; ++i) { (, bool withDelay, ) = _getManagerData(plan, i); if (withDelay) { + // This function can reenter when calling `_manager.schedule` before performing state updates in `_setManagerData`. + // However, the `manager` is a trusted contract in the current context's security model (e.g. an `AccessManager`). + // slither-disable-next-line reentrancy-no-eth (, uint32 nonce) = _manager.schedule(targets[i], calldatas[i], etaSeconds); _setManagerData(plan, i, true, nonce); }