CORIONplatform / solidity

GNU General Public License v3.0
12 stars 9 forks source link

Critical security vulnerability. There is no way to change owner of the ICO contract. #105

Closed Dexaran closed 7 years ago

Dexaran commented 7 years ago

ICO contract has a single owner. Owner is an address who created ICO contract. There must be a possibility to replace owner with a new address!

Imagine that your account private key got compromised. You spotted this and you need to emergency replace an owner with your new account that is not compromised. You must have an opportunity to do it.

iFA88 commented 7 years ago

I dont think that be needed.

  1. I dont know who has my private key until its anything happend.
  2. This private key is only used for deploy and for closing ICO. I think, when steal a private key is so easy, then this is the littlest problem when anyone closes an ICO..
Dexaran commented 7 years ago

It is a potential insecurity. You should do everything that is possible instead of saying "I hope it will not happen" even if the probability is very low.

Dexaran commented 7 years ago

I don't know if you are going to use multisig or just an externally owned account to manage this contract. It is possible that you will need to replace owner for multiple reasons:

  1. we've seen a social engineering attack on CEW recently
  2. phishing sites are stealing private keys often
  3. prity multisig wallet was exploited a few days ago

Lack of possibility to replace an owner in contract is potential vulnerability. I think that a simple function to replace owner should exist:

function replaceOwner(address _newOwner) {
    if(msg.sender == owner {
        owner = _newOwner;
    }
}