The vulnerability allows users to bypass staking requirements by using a flash loan to register, perform actions, and unregister within a single transaction. Since there’s no penalty or slashing mechanism, users can exploit this to access respond or validate functions without maintaining a genuine stake, undermining the security of the system.
In order to make respond and validate calls, one has to have registered to be a generator or a validator.
Here are the register and unregister functions:
As we can see, there is no requirement that the user does not unregister in the same tx as he registered.
There is also no slashing mechanism for misbehaviour.
This allows anyone to obtain a flashloan, register, respond/validate and then unregister in a single tx, so anyone can easily use many accounts to register as generator/validator to manipulate outcome of the output assets that will be purchased by the buyerAgent
This undermines the staking mechanism intended to secure the system. Users can temporarily stake via flash loans, perform respond or validate actions, and withdraw their stake in the same transaction, bypassing any real commitment. This exposes the system to potential abuse by uncommitted or malicious actors, who can repeatedly perform actions without risk or lasting stake. Consequently, it weakens the reliability and trustworthiness of the validation and generation processes, possibly leading to inaccurate or malicious outcomes within the system.
Manual Review
Funds sent during register should be locked for a period
Impose slashing mechanism for misbehaviour
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.