The function propose
does not check whether msg.sender
is the zero address (address(0)
). This could lead to unexpected behavior if the function is ever called by an external contract or a smart contract that does not have a proper sender identity.
The function retrieves the voting power of msg.sender
using _veToken.getVotingPower(msg.sender)
, but does not validate whether msg.sender
is address(0)
.
Storage Bloat: If address(0)
is able to propose transactions, a malicious actor could exploit this to store large amounts of data, consuming blockchain storage.
Blocking Other Proposals: If address(0)
successfully submits proposals (due to lack of validation), these proposals could fill the governance queue, making it harder for legitimate proposals to be processed.
Manual Review
Explicit Check for Zero Address: Add a require statement to prevent msg.sender == address(0)
:
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.