Closed sherlock-admin2 closed 4 months ago
2 comment(s) were left on this issue during the judging contest.
WangAudit commented:
in both cases if blocktimestamp > eta + grace period then revert; I see that if they're equal it will revert; but it looks low/info since it's one second and if users want to execute such proposals they can do it earlier
karanctf commented:
insignificant
ether_sky
medium
The stateInternal function mistakenly identifies proposals as expired when the grace period concludes.
Summary
With in the
timelock
, succeededproposals
can be executed during thegrace period
. They can be executed when thegrace period
concludes. However, thestateInternal
function identifiesproposals
asexpired
at this time. As a result, users might inadvertently skip executing them.Vulnerability Detail
We can execute
proposals
when thegrace period
concludes.However, the
stateInternal
function identifiesproposals
asexpired
at this time.The
proposals
can not be executed when thegrace period
concludes, or we modify thestateInternal
function.Impact
Code Snippet
https://github.com/sherlock-audit/2024-03-nouns-dao-2/blob/8f6879efaf831eb7fc9d4a4ad2b62b5334220d87/nouns-monorepo/packages/nouns-contracts/contracts/governance/NounsDAOExecutorV2.sol#L178-L185 https://github.com/sherlock-audit/2024-03-nouns-dao-2/blob/8f6879efaf831eb7fc9d4a4ad2b62b5334220d87/nouns-monorepo/packages/nouns-contracts/contracts/governance/NounsDAOProposals.sol#L607-L609
Tool used
Manual Review
Recommendation