-
Notifications
You must be signed in to change notification settings - Fork 317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sovereign Audit remediations #359
base: feature/ongoingPP
Are you sure you want to change the base?
Conversation
contracts/v2/newDeployments/PolygonRollupManagerNotUpgraded.sol
Outdated
Show resolved
Hide resolved
450cd7e
to
d4e4bad
Compare
d4e4bad
to
eac43cd
Compare
Quality Gate passedIssues Measures |
@@ -16,6 +14,10 @@ contract GlobalExitRootManagerL2SovereignChain is | |||
// globalExitRootUpdater address | |||
address public globalExitRootUpdater; | |||
|
|||
// globalExitRootRemover address | |||
// In case of initializing a chain with Full execution proofs, this address should be set to zero, otherwise, some malicious sequencer could insert invalid global exit roots, claim, go back and the execution would be correctly proved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this comment might not be right?¿ we coudl have a timelock or multisig for it, ( could improve the comment with it)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you mean? I understood that in case of a FEP chain, this address has to be zero. Indeed, if it's not zero can be a multisig but what happens with the comment?
The following PR implements de remediations for the audit.
It also fixes a security issue found aposteriori of the audit:
To avoid this behavior, the following remediations have been implemented:
unsetMultipleClaimedBitmap
to unset claims from the bitmap has been implemented -> IMPORTANT to audit with careful, it makes tricky bit operations. Can only be called by bridgeManagersetSovereignTokenAddress
has been removed for bytecode length performance improvementPolygonZkEVMBRidgeV2
has been overwritten. They have been overwritten without some checks only necessary for bridges that are being deployed on L1, which is not the case.