The pause() function in RAACMinter.sol allows manipulation of lastUpdateBlock which can lead to lost emissions by artificially shortening the time period for emission calculations.
The pause() function allows setting lastUpdateBlock to any historical value. This means when the contract is unpaused, emission calculations will use this manipulated value instead of the actual last update block.
This allows skipping emission calculations for blocks between the actual last update and the artificially set lastUpdateBlock.
Example scenario:
Loss of emissions for skipped blocks, leading to reduced rewards for protocol participants.
Manual review
Remove the ability to set lastUpdateBlock during pause:
If block tracking during pause is needed, implement a separate accounting system that preserves emission calculations for all blocks.
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.