Fix/wcn 196 eddsa recipient guard#8630
Open
mrdanish26 wants to merge 1 commit intomasterfrom
Open
Conversation
Add resolveEffectiveTxParams guard to EdDSA signRequestBase() mirroring the ECDSA fix from WAL-375. Expands NO_RECIPIENT_TX_TYPES with ~36 EdDSA coin types (staking, wallet init, token ops, CANTON flows) that legitimately carry no recipients. Guard also falls back to intent.intentType when txParams.type is unset, covering EdDSA coins that populate intent but not txParams. TICKET: WCN-196
5ccc429 to
f45a0dd
Compare
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.
Summary
Follow-up to WAL-375 (#8539). Applies the same recipient verification guard to the EdDSA TSS signing path.
The vulnerability (same root cause as WAL-375)
EddsaUtils.signRequestBase()did not callverifyTransactionwith the actual recipients, allowing a compromised API server to substitute a malicioussignableHex— the transaction presented to the user for signing could differ from what was actually broadcast.Fix
Added
resolveEffectiveTxParams+verifyTransactioncall insidesignRequestBase()forRequestType.tx, immediately afterunsignedTxis resolved and before key derivation begins:TICKET: WCN-196