When deploying instances of streams across various chains, users with account abstraction wallets have different addresses across different chains for the same account.
Consequently, if all tokens are claimed for someone using an account abstraction wallet, the tokens will be sent to the wrong address and lost permanently. Additionally, a malicious attacker who notices this could perform griefing attacks on all account abstraction wallet users by voluntarily executing claim()
for these users.
With the potential for millions of users and substantial assets involved, there is a significant risk that claim rewards could be called for account abstraction wallet users, resulting in the loss of tokens.
Account abstraction wallets can have different addresses across different chains. When a user with such a wallet attempts to claim rewards on multiple chains, the address used may differ between chains.
If the contract logic assumes the same address across all chains, this discrepancy can lead to lost tokens.
In the claim function, the recipient's address is used directly to create the stream.
Here, the function passes the recipient's address directly to create the stream. This address is assumed to be the same across all EVM-compatible chains, which is not the case for account abstraction wallets.
If all rewards are claimed for someone using an account abstraction wallet, the will tokens sent to the wrong address and lost permanently. Moreover, a malicious attacker who notices this discrepancy could perform griefing attacks on all account abstraction wallet users by voluntarily executing claim()
for these users, resulting in the permanent loss of their tokens.
Manual Review
Provide users with the option to specify the address where rewards should be sent on each chain.
This can be achieved by adding an extra address variable to the user data structure, ensuring that users can set their recipient address correctly.
Clearly warn users with account abstraction wallets to specify different addresses for each chain to avoid loss of 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.