Friday, May 24, 2013

CloudStack IaaS insecure password reset

CloudStack is one of the major and popular IaaS  (Infrastructure as a Servile)  platform.

Below small review of the password reset process in the CloudStack.

The purpose of password reset procedure - to allow user during deployment of the VM (virtual machine) template or after this to reset root (administrator password) of VM. Because of the main idea of IaaS to give user ability to help himself  this is one of the key functionality.

From user perspective process looks like:
1. start new VM or click reset password on any stopped VM
2. Get popup with new root password
3. Log in using console, rdp or ssh using new password.

Let's see what behind the scene:
Each network in CloudStack has dedicated router (VR) which doing dhcp, dns, loadbalancing, firewalling and password reset for whole subnet.

On VR we have following components of password reset service:
1. Process listening on port 8080:
 socat -lf /var/log/cloud.log TCP4-LISTEN:8080,reuseaddr,crnl,bind= SYSTEM:/opt/cloud/bin/ "$SOCAT_PEERADDR"
it actually waiting for request like : DomU_Request: send_my_password

2. script actually doing the job: /opt/cloud/bin/

3. and password file: /var/cache/cloud/passwords having all passwords in clear text with filesystem permissions -rw-r--r--

after each password request VR replace corresponding password in password file  by "saved_password"

On VM template and  VM instance you have script: /etc/init.d/cloud-set-guest-password
This script automatically request root password from VR at each system startup and update it .

The password request procedure is:
1. Client VM parse local  network setting and getting DHCP server IP.
2. Client send clear text  request like wget -q -t 3 -T 20 -O - --header "DomU_Request: send_my_password" $PASSWORD_SERVER_IP:8080
3. If it get password it will use it. If it gets "saved_password" it won't do anything.

Security problems:
1. clear text password storage on VR
2. Clear text password transmission over the network
3. Missing password sever authentication (only by IP)
4. auto-starting password reset service.


If attacker has access to the one instance into cloudstack network by spoofing password server(VR) IP he will able to compromise other instances int this subnet after their reboot. Having access to VR - will be able to compromise all nodes.


  1. Hey there - just wanted to reach out with some feedback on your blog post.

    We are aware of the issues mentioned above, but consider them a low-level issue. Allow me to explain what I mean by this:

    In the Apache CloudStack (ACS) model, we consider the network between hosts and virtual machines to be secure, and not open to 3rd party sniffing. If this part of the model is found to be invalid, then the installation will have all sorts of problems - as will just about any IaaS product out there. The same goes for servers and system VMs that ACS manages. If a malicious user could get access to them, they could modify the configuration database, DHCP servers, routing configurations, firewalls - in general it'd be a very bad thing. The user documentation stresses that systems and networks be hardened prior to ACS installation, and that the sytems are kept secure.

    All that said, we are planning on improving this. Some of us were already talking about improving the password reset system to make it more secure and resilient. I'll try to post a functional spec to our wiki by the end of this week, and would love to have your feedback upon the new design.

    If you have further concerns we're happy to discuss them on the CloudStack developer's mailing list. If you find further issues, please do bring them to our attention by emailing Thanks!

    John Kinsella
    Apache CloudStack PMC member, committer, and security team member

  2. Thanks a lot John for your detailed response. I completely agree with you that system VM should be assumed as a secure place, but network, especially if it shared and available on the Root level IMHO couldn't be considered secured. I have some ideas for instance-VR mutual authentication and will be happy to see new functional spec and discuss it in the mailing list.

  3. You fully match our expectation and the selection of our data.Password Manager

    1. I am glad that I saw this post. It is informative blog for us and we need this type of blog thanks for share this blog, Keep posting such instructional blogs and I am looking forward for your future posts.
      Cyber Security Projects for Final Year

      JavaScript Training in Chennai

      Project Centers in Chennai

      JavaScript Training in Chennai

  4. You fully match our expectation and the selection of our data.Password Manager

  5. This article has some vast and valuable information about this subject. full coverage on a car

  6. Hey enormous stuff or pleasant information you are offering here. pay day loan advance

  7. It’s amazing in support of me to truly have a blog site, which will be valuable meant for my knowledge. Thanks admin. i live in new york and i need a payday loan

  8. This is why the password protection tool in Microsoft Office programs is a great feature as it allows you to easily protect your private documents from prying eyes.reset windows 10 password

  9. A good blog always comes-up with new and exciting information and while reading I have feel that this blog is really have all those quality that qualify a blog to be a one. security guards