fix(security): pin evm to the deployed commit, not the merged tip (testnet/v37) - #4640
Open
skosito wants to merge 1 commit into
Open
fix(security): pin evm to the deployed commit, not the merged tip (testnet/v37)#4640skosito wants to merge 1 commit into
skosito wants to merge 1 commit into
Conversation
…stnet/v37) Same issue as the mainnet line: #4638 pinned the squash-merged release/v37 tip (a69d910e), which carries the module-account guard re-gated on the chain's blocked-receive policy, whereas live v37.0.3 runs the earlier module-account form. The two take different branches for an unblocked module account with a non-zero delta, which is consensus-breaking. Repins to 198da04b, the commit v37.0.3 was built from. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Repins
cosmos/evmto the commit live v37.0.3 was built from.Why
#4638 pinned the squash-merged
release/v37tip. That tip includes the follow-up commit re-gating the module-account guard on the chain's blocked-receive policy:ZetaChain's blocked-receive set is a strict subset of its module accounts —
x/fungible,x/crosschainand emissions are deliberately not blocked. So for an unblocked module account with a non-zero delta the two forms take different branches: reject vs. mint/burn. Same input, different state transition — consensus-breaking, and it cannot ship as av37.0.xpatch.The private node PR pinned
198da04bdeliberately for this reason; the blocked-receive guard was always meant to ship separately as a coordinated upgrade. Repinning to the merged tip collapsed that separation, because the squash merge made the pre-gating commit unselectable fromrelease/v37.The guard change is still wanted — it fixes real breakage around sends to emissions — just not in a patch release.
Note
198da04bis reachable via thesec/testnet-v37-completebranch onzeta-chain/evm. Do not delete that branch while this pin is live, or tag the commit to make it permanent.Verification
go build ./cmd/zetacoredgreen. Guard confirmed as theisModuleform in the downloaded module, not just by SHA.Note
High Risk
Changes which forked EVM bank/module-account logic is compiled into
zetacored, directly affecting consensus state transitions for module balance updates.Overview
Repins the
github.com/cosmos/evmreplace from the squash-mergedrelease/v37tip (a69d910e9214) to the older fork commit (198da04bfbd3) that live v37.0.3 was built against.go.sumis updated for the new pseudo-version.The newer tip reintroduced a blocked-receive guard on non-zero balance deltas for module accounts. On ZetaChain, several module accounts (e.g. fungible, crosschain, emissions) are not on the blocked-receive list, so that guard can reject transfers where the deployed code still mints/burns—a consensus-breaking divergence that is inappropriate for a
v37.0.xpatch. This change restores dependency parity with what testnet/mainnet v37.0.3 already runs; the guard is intended for a later coordinated upgrade.Reviewed by Cursor Bugbot for commit dd94ab2. Configure here.
Greptile Summary
This PR restores the main module’s
github.com/cosmos/evmreplacement to the commit used by the deployed v37.0.3 binary, avoiding an unintended consensus-behavior change in a patch release.github.com/zeta-chain/evmfroma69d910e9214to198da04bfbd3.go.modchecksums.Confidence Score: 5/5
The PR appears safe to merge, with the dependency replacement and checksums consistently selecting the intended deployed EVM commit.
No concrete changed-code failure remains; the manifest and checksum changes agree, while the reported transitive dependency advisories were already present on the base revision.
Important Files Changed
Reviews (1): Last reviewed commit: "fix(security): pin evm to the deployed c..." | Re-trigger Greptile