fix: F-2026-18827 | [Dual Defense] Normal EVM Outbound Resolution Uses Current TSS Address After Key Rotation - #314
Open
Aman035 wants to merge 1 commit into
Open
fix: F-2026-18827 | [Dual Defense] Normal EVM Outbound Resolution Uses Current TSS Address After Key Rotation#314Aman035 wants to merge 1 commit into
Aman035 wants to merge 1 commit into
Conversation
…t TSS (F-2026-18827)
Member
Author
|
@0xNilesh KEYGEN/rotation: require outbound disabled and no pending/SIGNED/BROADCASTED old-key rows (or refuse current-key flip until drained). |
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.
F-2026-18827 Outbound nonce checked against the current TSS after rotation
Issue
SigningDatacarried no key id, sooutboundSignerfell back togetTSSAddress()— the live TSS.NonceConsumed→ failure vote → remint, while the K1 tx can still mine. Double settlement.OldTssPubkey. The asymmetry was documented intxresolver/evm.gorather than fixed.Approach taken
txflow.RecoverOutboundSigner: ecrecover the signer from the persisted signature + signing hash. Resolver and broadcaster both use it instead of the live TSS address.[r|s|v]— EVM broadcast rejects anything else, and SVM readssignature[64]as the recovery id.GetTSSAddressconfig from both packages, so the wrong address is no longer reachable from these paths.Tests
txflow: recovers the signing address, two keys recover to different addresses, and every malformed payload reports failure rather than a wrong address.Not implemented
Rec 3 (block KEYGEN while old-key rows are pending) is chain-side — rotation is initiated in
x/utss, not here.