The function executeEmergencyAction() is designed to allow emergency execution of transactions through the Timelock contract. However, it does not update the proposal's execution status in the governance contract.
As a result, even after a proposal is executed using emergency action, its state in the governance contract remains unchanged. This inconsistency could allow proposals to be executed multiple times.
The function executes emergency transactions but does not update the governance contract’s proposal state. The proposal remains marked as not executed, leading to inconsistencies.
Since the governance contract still considers the proposal unexecuted, it can be executed again through standard means, leading to unintended multiple executions.
Proposals can be executed twice, leading to double transfers, duplicate parameter changes, or security risks.
Manual Review
implement executeEmergencyAction from the governance contract and update proposal state
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.