In the OperatorVault::updateDeposits
the use of an arbitrary, unvalidated _rewardsReceiver
to whom rewards will be sent to is what poses the risk of a possible griefing attack, despite the presence of an initialized rewardsReceiver
as a state variable.
An arbitrary, user-defined validated _rewardsReceiver
is used to receive rewards in the OperatorVault::updateDeposits
. The problem is five fold
There's no check to see if it matches the already set rewardsReceiver
from OperatorVault::rewardsReceiver
.
Arbitrary user input can be manipulated if OperatorVault::VaultController
is compromised or turns malicious.
Can be possibly set to address(0)
thereby forever losing funds.
Gives room to malicious activity by protocol, think Rug Pull. Besides the operation lacked events too.
Why use arbitrary address when there's an initialized address set by the owner during initialization or OperatorVault::setRewardsReceiver
Risk of a possible griefing attack can lead to loss of funds.
Manual Review.
Use the stored OperatorVault::rewardsReceiver
value only.
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.