The ScrvusdOracleV2.vy
contract lacks implementation of sequencer uptime verification, which could lead to stale prices being used when L2 sequencer is down. This is a critical security concern for L2 deployments.
The oracle contract does not implement any checks to verify if the L2 sequencer is operational before providing price data. This is particularly critical for L2 deployments where sequencer downtime can lead to stale or manipulated prices being used.
Current implementation in ScrvusdOracleV2.vy
only checks block numbers:
Key issues:
No sequencer status verification
No grace period after sequencer recovery
Missing L2-specific timestamp validations
When an L2 sequencer goes down:
1 .Price updates stop but contract remains functional
2. When sequencer restarts, immediate price updates might be stale
3. Attackers can exploit this window for price manipulation
Price manipulation during sequencer downtime
Stale price usage after sequencer restarts
Potential economic attacks during L2 network issues
Risk of incorrect liquidations and unfair trades
Manual Review
Cross-chain deployment analysis
L2 security best practices verification
Add L2 sequencer verification:
This implementation:
Adds proper sequencer status verification
Implements grace period after sequencer recovery
Emits events for monitoring
Maintains compatibility with existing functionality
I believe this to be at best informational severity as - The moment sequencer is up again, the price updates that retrieve storage values from mainnet will be pushed. To note, price updates are retrieved from storage proofs are retrieved from Ethereum scrvUSD contract, so the concept of the next updated price being outdated is not possible, given mainnet does not utilize sequencers. - There are no problems with small lags if used in liquidity pools due to fees. Fees generate spread within which price can be lagged. - All price updates are subjected to smoothing, and as you can see from the historical price movements as seen [here](https://coinmarketcap.com/currencies/savings-crvusd/), there is never a large discrepancy in prices (absolute terms), and even more unlikely given sequencer downtimes will unlikely be long. This small price changes can be safely arbitrage aligning with [protocol design](https://github.com/CodeHawks-Contests/2025-03-curve?tab=readme-ov-file#parameters) , along with the above mentioned fees - Combined with the above, the max price increments can be temporarily increased to more effectively match the most updated price.
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.