send(_to, _amount)
in unstake
will fail for smart wallets due to gas limit of 2300
Relavant link - 2024-08-steaking/steaking-contracts/src/Steaking.vy at main · Cyfrin/2024-08-steaking (github.com)
In unstake
function, when user unstake it send the ether using send
function. However current implementation is pretty basic which limits the gas stipend to 2300, causes failed transaction for smart accounts.
It will cause stakers fund locked in the steaking smartcontract forever.
Loss of funds with no way to take them out for smart accounts users.
Manual Review
It can be fixed by using raw_call avoid any issue
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.