50212 sc insight validators without staked funds can control slashing decisions leading to protocol insolvency
Description
Brief/Intro
Vulnerability Details
function addValidator(
uint16 validatorId,
uint256 commission,
address l2AdminAddress,
address l2WithdrawAddress,
string calldata l1ValidatorAddress,
string calldata l1AccountAddress,
address l1AccountEvmAddress,
uint256 maxCapacity
) external onlyRole(PlumeRoles.VALIDATOR_ROLE) {
...
PlumeStakingStorage.ValidatorInfo storage validator = $.validators[validatorId];
validator.validatorId = validatorId;
validator.commission = commission;
validator.delegatedAmount = 0;
validator.l2AdminAddress = l2AdminAddress;
validator.l2WithdrawAddress = l2WithdrawAddress;
validator.l1ValidatorAddress = l1ValidatorAddress;
validator.l1AccountAddress = l1AccountAddress;
validator.l1AccountEvmAddress = l1AccountEvmAddress;
@> validator.active = true;
validator.slashed = false;
validator.maxCapacity = maxCapacity;
...
}Impact
Recommendation
Proof of Concept
Previous50560 sc high inconsistent commission rounding traps user validator fundsNext52397 sc medium repeated approve without zero reset can revert on nonstandard erc20s blocking deposits
Was this helpful?