Beginner FriendlyFoundryDeFi
100 EXP
View results
Submission Details
Severity: low
Invalid

Withdrawal will fail for smart wallets (ERC4337) aka account abstraction wallets due to `send` function implementation

Summary

send(_to, _amount) in unstake will fail for smart wallets due to gas limit of 2300

Vulnerability Details

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 sendfunction. 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.

Impact

Loss of funds with no way to take them out for smart accounts users.

Tools Used

Manual Review

Recommendations

It can be fixed by using raw_call avoid any issue

- send(_to, _amount)
+ raw_call(to, b"", value=msg.value)
Updates

Lead Judging Commences

inallhonesty Lead Judge
10 months ago
inallhonesty Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement
Assigned finding tags:

Usage of send is not the best thing

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.