The stakeVested() function in the FjordStaking contract allows users to stake tokens from Sablier streams, provided the stream sender is authorized. However, if the contract owner changes the authorization status of a sender after a stream has been staked, the stream continues to accrue rewards. This could lead to inconsistencies in reward distribution and policy enforcement.
The function checks if the stream sender is authorized at the time of staking.
This check is intended to ensure that only streams from senders who are explicitly authorized by the contract owner can be staked.
Changing Authorization Status:
The contract owner has the ability to change the authorization status of a sender using removeAuthorizedSablierSender()function.
If the owner removes a sender from the authorized list after a stream has been staked, it means that the stream in question is no longer supported. However, the stream will continue to accrue rewards despite the sender no longer being authorized.
Streams from senders who are no longer authorized will continue to benefit from staking rewards, potentially violating the intended policy of only rewarding authorized streams.
Manual Review
Unstake the vesting for the streamOwner in removeAuthorizedSablierSender().
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.