Encrypted key material not bound to wallet address — cross-wallet signing possible #54
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
The
evm_wallettable is not integrity-protected, and the encrypted key material is not cryptographically bound to the wallet address. During signing, the code does not verify that the decrypted private key actually corresponds to the requested address.Details
Impact
Allows an attacker to make the server sign transactions with another wallet's private key and spend funds from that wallet.
Example Flow
Mitigation
Add integrity protection to
evm_wallet, bind ciphertexts to wallet addresses using AAD or equivalent, and verify after decryption that the derived address matches the expected wallet address.