The unstake
function relies on the send method, which can fail when interacting with contracts that require more than 2300 gas for their fallback
functions or when dealing with multisig wallets.
The send
function limits the gas forwarded to 2300, which may not be enough for contracts with complex fallback
functions or higher gas requirements for transaction processing. This can lead to failed withdrawals if the recipient is a smart contract with a receive
function that exceeds this gas limit.
If the recipient is a contract with a complex fallback function, the transaction could fail, preventing users from successfully withdrawing their funds. This issue particularly affects contracts needing more than 2300 gas, including certain multisig wallets, potentially disrupting user access to their assets.
Manual Code Review
Consider using the call()
function instead to avoid potential gas limitation issues and ensure successful fund withdrawals.
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.