The decision to return the liveness bond depends solely on the last guardian #205
Labels
2 (Med Risk)
Assets not at direct risk, but function/availability of the protocol could be impacted or leak value
bug
Something isn't working
M-10
primary issue
Highest quality submission among a set of duplicates
🤖_205_group
AI based duplicate group recommendation
satisfactory
satisfies C4 submission criteria; eligible for awards
selected for report
This submission will be included/highlighted in the audit report
sufficient quality report
This report is of sufficient quality
Lines of code
https://github.com/code-423n4/2024-03-taiko/blob/f58384f44dbf4c6535264a472322322705133b11/packages/protocol/contracts/L1/provers/GuardianProver.sol#L46
https://github.com/code-423n4/2024-03-taiko/blob/f58384f44dbf4c6535264a472322322705133b11/packages/protocol/contracts/L1/libs/LibProving.sol#L192
Vulnerability details
The
GuardianProver
contract is a multisig that might contest any proof in some exceptional cases (bugs in the prover or verifier). To contest a proof, a predefined number of guardians should approve a hash of the message that includes_meta
and_tran
.The issue arises from the fact that the approved message doesn't include the
_proof
. It means that the last approving guardian can provide any desired value in the_proof
. The data from the_proof
is used to determine whether it is necessary to return the liveness bond to the assigned prover or not:As a result, the last guardian can solely decide whether to return the liveness bond to the assigned prover or not.
Impact
The decision to return the liveness bond depends solely on the last guardian.
Proof of Concept
-
Tools Used
Manual Review
Recommended Mitigation Steps
Consider including the
_proof
in the approved message.Assessed type
Invalid Validation
The text was updated successfully, but these errors were encountered: