poanetwork / posdao-contracts

Smart contracts for POSDAO (Proof of Stake Decentralized Autonomous Organization consensus), a DPOS consensus implemented in Solidity and running within EVM with swappable BFT consensus
Other
105 stars 49 forks source link

SECURITY FIX: initialize() MUST only be called on the genesis block #14

Closed DemiMarie closed 5 years ago

DemiMarie commented 5 years ago

initialize() does no authorization checks. Its security comes entirely from the fact that it can only be called on the genesis block. However, it is possible for a malicious contract to call initialize() for RandomAuRa on any block it wants.