The KeeperProxy
contract contains a critical logic error in the sequencer status validation that inverts the intended behavior, allowing transactions to proceed when the L2 sequencer is down and blocking them when it's operational.
The problem is in the _validatePrice
function:
The root cause is the incorrect interpretation of the sequencer feed's answer:
When answer = 0: Indicates sequencer is DOWN (isSequencerUp
akan true
)
When answer = 1: Indicates sequencer is UP (isSequencerUp
akan false
)
However, the code incorrectly sets isSequencerUp to true when answer is 0, completely inverting the security check. Akibatnya, transaksi akan lolos ketika sequencer sebenarnya DOWN dan gagal ketika sequencer UP.
This issue can result in transactions being processed while the L2 sequencer is down. On Arbitrum L2 network, the sequencer plays a critical role in sequencing transactions, ensuring consistency, and maintaining synchronization with the L1.
The transaction will pass when the actual sequencer is DOWN and fail when the sequencer is UP
Manual review
Fix the sequencer status check logic.
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.