The TempleGold::send
assumes that the sender's address (msg.sender
) will always match the intended recipient address (_to
) for allowing the TempleGold transfer cross-chain. This assumption fails when users use account abstraction wallet that has a different address across different chains for the same account. Consequently, a strict comparison between msg.sender
and _to
using simple address equality leads to unintended transaction reverts, even when the user is effectively performing a self-operation across chains.
The vulnerability lies in the logic that enforces msg.sender != _to
without accounting for the possibility of address variation across chains for the same user. In scenarios where a user's account abstraction wallet has different addresses on different chains, this check incorrectly interprets legitimate self-transfers or controlled operations as unauthorized attempts, leading to transaction failures.
Users with account abstraction wallets have a different address across different chains for the same account, so if someone using an account abstraction wallet can't transfer cross-chain their TempleGold asset.
Manual review.
Give the user the option to pass a destination address different from the sender address. Eventually, pass in the warning for account abstraction wallet holders not to pass the same wallet.
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.