30990 - [SC - Critical] Users can use Voterpoke to accrue Flux tokens i...
Description
Brief/Intro
Vulnerability Details
// ...
contract Voter is IVoter {
// ...
function poke(uint256 _tokenId) public {
// Previous boost will be taken into account with weights being pulled from the votes mapping
uint256 _boost = 0;
if (msg.sender != admin) {
require(IVotingEscrow(veALCX).isApprovedOrOwner(msg.sender, _tokenId), "not approved or owner");
}
address[] memory _poolVote = poolVote[_tokenId];
uint256 _poolCnt = _poolVote.length;
uint256[] memory _weights = new uint256[](_poolCnt);
for (uint256 i = 0; i < _poolCnt; i++) {
_weights[i] = votes[_tokenId][_poolVote[i]];
}
_vote(_tokenId, _poolVote, _weights, _boost); // <=== audit
}
function _vote(uint256 _tokenId, address[] memory _poolVote, uint256[] memory _weights, uint256 _boost) internal {
// ...
IFluxToken(FLUX).accrueFlux(_tokenId); // <=== audit
// ...
}
// ...
}Impact Details
References
Proof of Concept
Results
Previous30985 - [SC - Medium] Griefing attack prevents admins from disabling ...Next30992 - [SC - Insight] Inconsistent State Missing Event Emission in Fl...
Last updated
Was this helpful?