If a user utilizes a multisig wallet for staking and, upon claiming the rewards, does not receive the MOR tokens in the ARB network, it could be because the multisig with the same address might not be controlled by the same users as in ETH. Consequently, the user may incur a loss of rewards.
Let's consider a scenario where Alice is the owner of a Gnosis Safe or any other Multisig wallet with the address 0xabc, for example, on the Ethereum (ETH) network. Alice, utilizing her multisig wallet, has staked some stEth in the protocol. After a certain period, Alice decides to claim the rewards. However, due to a flaw in the code logic, and Alice not owning the multisig with the same address (0xabc) on the Arbitrum (ARB) network, she will not receive the MOR tokens in the ARB network. The multisig wallet at address 0xabc might be controlled by another user, or an attacker could deploy a multisig wallet at this address to steal the MOR tokens intended for Alice. This situation could lead to Alice losing her funds.
Let's examine the vulnerability in the code:
In the code above, to claim rewards, one must provide the user_
address. The function fetches the amount of pending rewards for the user_ and calls the L1Sender
's sendMintMessage
function.
In the above code snippet, the payload is encoded with the user_
address and the amount_
(Alice's pending rewards). The LayerZero Endpoint is then called to send a cross-chain message to the Arbitrum (ARB) network.
In the ARB network, the payload is received by the L2MessageReceiver.sol
contract:
The _nonblockingLzReceive
function decodes the payload sent in the ETH network and mints MOR tokens to the 0xabc address in the Arbitrum (ARB). However, since Alice does not own the multisig with the address 0xabc in the ARB network, and the 0xabc address multisig might be controlled by other users or a malicious attacker, there is a risk that the rewards intended for Alice could be claimed by someone else.
As explained in detail on https://rekt.news/wintermute-rekt/, it is possible to gain control of the same address for contract accounts in a different chain; especially for those contract accounts that are deployed using the Gnosis Safe contracts:
The attacker has the capability to gain control of the multisig wallet in the ARB network, allowing them to pilfer the MOR tokens. This, in turn, leads to a loss of funds for the user.
Manual Review
To address the issue and ensure that users using multisig wallets receive rewards to the specific address they specified in the ARB network, you can consider adding the following functionality to your code:
In this modified function, an additional parameter arbAddress_
is introduced, representing the specific ARB address where the user wants to receive the MOR tokens.
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.