The depositIntoVault
function performs a high-risk operation and directly sends ETH to be converted to WETH which it then deposits into the vault:
The function then proceeds to emit an event and finish execution without updating the internal staking accounting.
There’s a risk that a user could drain the contract if the usersToStakes
and totalAmountStaked
are not updated accordingly. A malicious user can repeatedly call depositIntoVault
function until it deposits all the funds from Steaking (effectively draining the pool) to the vault.
The impact is high, enabling a malicious user to drain all funds from the Steaking contract.
Manual Review
Update the usersToStakes
and totalAmountStaked
before depositing into the vault:
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.