Lack of Explicit Check over the operands used in the condition which updates the completion status.
In the LMOracleCoordinator::validate function, the following line checks if the number of validations received matches the number specified in task.parameters.numValidations:
This check implies that task.parameters.numValidations should be a positive integer (at least 1) for the function to operate correctly. If task.parameters.numValidations is 0, and validations[taskId].length is also 0, we will have on this line above:
The bool variable isComplered will be true, which would lead to the task being marked as completed immediately, even when no validations were required:
which would lead to the task being marked as completed immediately, however in this case the validations array is empty on one side and the number of validations numValidations is null on the other:
Compromising the logic of task validation, which can lead to other undesirable behaviour.And a malicious user can use this to bypass the requirement and exploit it to their advantage.
Manual review.
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.