The updateUserBoost function in the BoostController contract may return stale boost values due to the delegation lock issue. Since the delegation does not reset after expiry until the recipient manually removes it, users might operate with outdated data, leading to incorrect calculations and potential unfairness in boost distribution.
The delegateBoost function prevents users from delegating again until the recipient removes the expired delegation.
Due to this, the updateUserBoost function may fetch stale data when calculating the new boost, as expired delegations remain in effect.
The newBoost calculation can be based on an outdated delegation state, leading to incorrect pool boost updates.
Users may have outdated or incorrect boost values, affecting rewards and fairness.
Manual code review
Modify delegateBoost to automatically clear expired delegations before updating boosts:
Implement a mechanism in updateUserBoost to verify if the delegation has expired and remove stale data.
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.