Instant oracle registration and deregistration enable a malicious user to carry out a Sybil attack with only the minimum tokens needed for a single stake.
In LLMOracleRegistry.sol, any user can register (LLMOracleRegistry.sol#L94) as a generator or validator oracle and start performing tasks immediately. Similarly, deregistration (LLMOracleRegistry.sol#L117) can be done at any time, with staked funds becoming available instantly.
A user can exploit this by leveraging the accounts they control—registering, executing a generation or validation task, and then deregistering repeatedly as needed to complete the targeted task.
It's worth noting that performing a Proof of Work task, (i.e finding a valid nonce), does not require active oracle registration. This allows an attacker to run nonce calculations concurrently across all account addresses, then register the first address that finds a valid nonce.
Attacker registers account #1 as a generator oracle.
Attacker submits the result to respond method.
Attacker deregisters account #1 and sends unstaked funds to account #2.
Attacker repeats steps 1 - 3 as many times as needed using different accounts.
Same process as above is repeated for validator oracle.
This vulnerability renders the staking requirement insignificant, allowing an attacker to act as multiple oracles without staking a proportional amount of tokens. Consequently, the attacker can manipulate task results in their favor.
Manual review
Implement a substantial delay before activating a newly registered oracle.
Implement a significant waiting period before allowing funds withdrawal after oracle deactivation.
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.