Hi,
I have found out a potential vulnerability in the contract 'ScrvusdVerifierV2.sol' in which the contract doesn't check the return value for the external call to update update_profit_max_unlock_time
.
The key details of this potential bug can be given as follows:
In the function verifyPeriodByBlockHash
, the contract doesn't check return value of the external call to update_profit_max_unlock_time
. Which means if external call fails (due to revert in oracle contract), the transaction will still succeed but leads to inconsistent state about the update.
Leads to failures like period is not updated in the oracle, but the caller assumes it was.
Manual Code Analysis
Add require statement to check if external call succeeds:
Non-acceptable severity, given there is arguably no impact here. If the verification function reverts, then the block number must have been outdated, which aligns with preventing updating of the max unlock time. The `verifyScrvusdByStateRoot` is unused with regard to in-scope contract context, so there is no evidence a boolean return variable is compulsory
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.