53056 sc low native withdraw to msg sender only non payable contract stakers cannot withdraw permanent funds lock
Description
Vulnerability Details
// StakingFacet.sol
function withdraw() external {
...
uint256 amountToWithdraw = $.stakeInfo[user].parked;
...
_removeParkedAmounts(user, amountToWithdraw);
_cleanupValidatorRelationships(user);
emit Withdrawn(user, amountToWithdraw);
(bool success,) = user.call{ value: amountToWithdraw }("");
if (!success) {
revert NativeTransferFailed();
}
}Impact Details
Proof of Concept
Previous53059 sc low reward rate checkpoints are used but are never setNext53051 sc high unconsented stakeonbehalf enables third party gas griefing dos by bloating uservalidators breaking withdraw claimall
Was this helpful?