The chain type manager documentation states that the ChainTypeManager
(CTM) admin has emergency powers to revert batches without waiting for governance approval. However, in the actual implementation on Executor.sol
, revertBatchesSharedBridge
only checks for validator permissions(using the onlyValidator
modifier), preventing the CTM admin from performing emergency batch reversions.
When the CTM admin attempts to revert batches through ChainTypeManager.revertBatches()
:
The call fails because as shown above the revertBatchesSharedBridge
function on Executor.sol
is protected by the onlyValidator
modifier.
Thus, completely breaking the invariant defined in the CTM's documentation:
"In case we are aware that some of the committed batches on an ST are dangerous to be executed, the CTM can call revertBatches
on that ST. For faster reaction, the admin of the ChainTypeManager has the ability to do so without waiting for governance approval that may take a lot of time."
Also, notice that the devs created the modifier to allow the CTM to also call revertBatches
but unfortunately, it is not in use.
The CTM admin cannot perform emergency reversions if malicious batches are committed.
Manual Review
Replace the onlyValidator
modifier with onlyValidatorOrChainTypeManager
on Executor.sol
:
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.