#39850 [BC-Medium] Bypass TransferFromSecureAccount transaction validations
Was this helpful?
Was this helpful?
Submitted on Feb 8th 2025 at 22:59:06 UTC by @Blockian for
Report ID: #39850
Report Type: Blockchain/DLT
Report severity: Medium
Target: https://github.com/shardeum/shardeum/tree/bugbounty
Impacts:
Causing network processing nodes to process transactions from the mempool beyond set parameters
All validations in can be bypassed, leading to:
Replay attack (nonce is not checked)
Unplanned transfers (nextTransferTime
and nextTransferAmount
are not checked)
In the function the to can be avoided if isInternalTx
is true
, because would be before.
An outside attacker can :
Wait for one transaction to be called
replay it to drain the source address
Inside attackers can:
Call a transfer that is unplanned
This allows to drain a source secure account entirely and defeats the entire purpose of secure accounts, and so it critical.
Add these multisig addresses:
Run a network with 10 nodes
Run the following code once the network is ready
Re run it again with the same nonce / transaction and notice how it still works even though the none is out of sync and no transfer is planned
Move the call to to inside