Attackers can manipulate the msg.value
in meta-transactions, potentially causing unintended behavior or failed external calls within the contract. This is due to the executeMetaTransaction
function not properly securing the msg.value
parameter.
In the NativeMetaTransaction
contract, the executeMetaTransaction
function allows execution of a function on behalf of a user:
Since msg.value
is not included in the meta-transaction signature, an attacker can execute the transaction with the user's signature but a random msg.value, possibly causing the called function by callExternalContract
in MembershipFactory
to behave unexpectedly.
Manipulating msg.value
can lead to unintended state changes, failed external calls, or even loss of funds if the contract logic depends on the amount of Ether sent with the transaction.
Manual review
Ensure that the msg.value
is part of the meta-transaction data that is signed by the user. This prevents attackers from altering the value without invalidating the signature.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.