In StakingPool.sol, fee receivers are paid using transferAndCallFrom which calls receiver.onTokenTransfer if the receiver is a contract.
Hence, as long as 1 fee receiver does not implement onTokenTransfer, the call to distribute rewards to ALL fee receivers will revert.
Impact
The whole distribution attempt will revert and even fee receivers who abide by the proper implementation will not be able to receive their respective tokens
Likelihood
There are multiple fee receivers and multiple strategies, and even if one does not follow the proper implementation, the whole transaction will revert and cause fee receivers of other strategies to be unable to receive their tokens
It is better to not revert the transaction in the favour of 1 incompatible fee receiver but instead allow the majority to get the yield-bearing shares first, as it would be an opportunity cost for the innocent fee receivers who follow the implementation format if we withhold their shares and end up causing loss of yield.
Protocol could also send the un-distributable fees to the strategies and let the 1 incompatible fee receiver claim it from there later on.
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.