When requesting a given task, callers (users/BuyerAgents) provide the Parameters for there Tasks, including difficulty, Generator numbers and Validator number.
These values, which are provided using LLMOracleTaskParameters
, are getting checked to not be less than the minimum and maximum Parameters.
llm/LLMOracleManager.sol#L65-L92
This check is done when calling Coordinator::request()
.
The user can provide number of generators and number of validators for his task. The current maximum number for both is 10
.
The problem is that the check just check for the minimum and maximum values. Like if there are 50
Generators and 50
Validators, not all of them can participate, just 10
of them at max.
The number of Generators and Validators is not controlled by Protocol, it is accessible to anyone. where anyone can become either a generator or a validator.
We are not storing the number of Current active generators or validators. We don't have a global variable that count them.
llm/LLMOracleRegistry.sol#L94-L111 | llm/LLMOracleRegistry.sol#L117-L131
In case we have only 3
generators and the user requested 5
generators, his task will unCompletable.
In case we have only 3
validators and the user requested 5
validators, his task will also unCompletable.
Store a global variable that calculates the number of active generators and validators, and check that the provided numbers is not exceed the number of active Oracles, besides min and max checks too.
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.