This is a post about an old vulnerability that I finally found the time to blog about. It dates back to 2014, but from a technical point of view it is nevertheless interesting: An XML parser that tries to fix structural errors in a document caused a DoS problem.
All previous posts of this series focused on XSS. This time, we present a vulnerability which is connected another Cloud Management Platform: OpenNebula. This Infrastructure-as-a-Service platform started as a research project in 2005. It is used by information technology companies like IBM, Dell and Akamai as well as academic institutions and the European Space Administrations (ESA). By relying on standard Linux tools as far as possible, OpenNebula reaches a high level of customizability and flexibility in hypervisors, storage systems, and network infrastructures. OpenNebula is distributed using the Apache-2 license.
OpenNebula offers a broad variety of interfaces to control a cloud. This post focuses on Sunstone, OpenNebula's web interface (see Figure 1).
Before OpenNebula 4.6.2, Sunstone had no Cross-Site Request Forgery (CSRF) protection. This is a severe problem. Consider an attacker who lures a victim into clicking on a malicious link while being logged in at a private cloud. This enables the attacker to send arbitrary requests to the private cloud through the victims browser. However, we could find other bugs in OpenNebula that allowed us to perform much more sophisticated attacks.
OpenNebula saves the incorrectly generated XML document in a database. The next time the OpenNebula core retrieves information about that particular VM from the database the XML parser is mixed up and runs into an error because it only expects a string as name, not an XML tree. As a result, Sunstone cannot be used to control the VM anymore. The Denial-of-Service attack can only be reverted from the command line interface of OpenNebula.
This bug can be triggered by a CSRF-attack, which means that it is a valid attack against a private cloud: By luring a victim onto a maliciously crafted website while logged in into Sunstone, an attacker can make all the victim's VMs uncontrollable via Sunstone. A video of the attack can be seen here:
This bug has been fixed in OpenNebula 4.6.2.
This result is a collaborative work together with Mario Heiderich. It has been published at ACM CCSW 2015. The paper can be found here.
Related articlesAll previous posts of this series focused on XSS. This time, we present a vulnerability which is connected another Cloud Management Platform: OpenNebula. This Infrastructure-as-a-Service platform started as a research project in 2005. It is used by information technology companies like IBM, Dell and Akamai as well as academic institutions and the European Space Administrations (ESA). By relying on standard Linux tools as far as possible, OpenNebula reaches a high level of customizability and flexibility in hypervisors, storage systems, and network infrastructures. OpenNebula is distributed using the Apache-2 license.
OpenNebula offers a broad variety of interfaces to control a cloud. This post focuses on Sunstone, OpenNebula's web interface (see Figure 1).
Figure 1: OpenNebula's Sunstone Interface displaying a VM's control interface |
Before OpenNebula 4.6.2, Sunstone had no Cross-Site Request Forgery (CSRF) protection. This is a severe problem. Consider an attacker who lures a victim into clicking on a malicious link while being logged in at a private cloud. This enables the attacker to send arbitrary requests to the private cloud through the victims browser. However, we could find other bugs in OpenNebula that allowed us to perform much more sophisticated attacks.
Denial-of-Service on OpenNebula-VM
At its backend, OpenNebula manages VMs with XML documents. A sample for such an XML document looks like this:<VM>OpenNebula 4.6.1 contains a bug in the sanitization of input for these XML documents: Whenever a VM's name contains an opening XML tag (but no corresponding closing one), an XML generator at the backend automatically inserts the corresponding closing tag to ensure well-formedness of the resulting document. However, the generator outputs an XML document that does not comply with the XML schema OpenNebula expects. The listing below shows the structure that is created after renaming the VM to 'My <x> VM':
<ID>0</ID>
<NAME>My VM</NAME>
<PERMISSIONS>...</PERMISSIONS>
<MEMORY>512</MEMORY>
<CPU>1</CPU>
...
</VM>
<VM>The generator closes the <x> tag, but not the <NAME> tag. At the end of the document, the generator closes all opened tags including <NAME>.
<ID>0</ID>
<NAME>My <x> VM</x>
<PERMISSIONS>...</PERMISSIONS>
<MEMORY>512</MEMORY>
<CPU>1</CPU>
...
</NAME>
</VM>
OpenNebula saves the incorrectly generated XML document in a database. The next time the OpenNebula core retrieves information about that particular VM from the database the XML parser is mixed up and runs into an error because it only expects a string as name, not an XML tree. As a result, Sunstone cannot be used to control the VM anymore. The Denial-of-Service attack can only be reverted from the command line interface of OpenNebula.
This bug can be triggered by a CSRF-attack, which means that it is a valid attack against a private cloud: By luring a victim onto a maliciously crafted website while logged in into Sunstone, an attacker can make all the victim's VMs uncontrollable via Sunstone. A video of the attack can be seen here:
This bug has been fixed in OpenNebula 4.6.2.
This result is a collaborative work together with Mario Heiderich. It has been published at ACM CCSW 2015. The paper can be found here.
- Hack Tools Pc
- Hack Tools For Ubuntu
- Hacking Tools For Games
- Pentest Tools Free
- Tools For Hacker
- Pentest Tools Linux
- Pentest Tools Website Vulnerability
- Hacker Tools
- Pentest Reporting Tools
- Hacking Tools Pc
- Hacking Tools Mac
- Hacking Tools Windows 10
- Hacking Tools And Software
- Hack Tool Apk No Root
- Hacking Tools And Software
- Hacking Tools Pc
- Pentest Tools Linux
- Hacking Tools Mac
- Hack Tools Github
- Hack Rom Tools
- Pentest Automation Tools
- Hacker Tools For Windows
- Pentest Tools Github
- Hackrf Tools
- Pentest Tools Tcp Port Scanner
- Hacking Tools For Mac
- Hacker Tools Software
- Hacker Tools Software
- Hacking Tools For Mac
- Hacker Tools Online
- Beginner Hacker Tools
- Beginner Hacker Tools
- Hack Tool Apk No Root
- Github Hacking Tools
- Pentest Tools Framework
- Hackrf Tools
- Hacker Security Tools
- Pentest Tools Free
- Hacking Tools For Pc
- Hacking Tools
- Pentest Tools For Android
- Pentest Tools Website
- Hacking Tools Pc
- Hacking Tools For Windows 7
- Hacking Tools Mac
- Hacking Tools
- Growth Hacker Tools
- Pentest Tools Nmap
- Hack Rom Tools
- Hacking Tools Mac
- Pentest Tools Windows
- Pentest Tools Nmap
- Top Pentest Tools
- Hacker Tools For Mac
- Kik Hack Tools
- Hacker Tools Hardware
- Pentest Reporting Tools
- Hack And Tools
- Hack Tools For Games
- Termux Hacking Tools 2019
- Hacking Tools For Beginners
- What Are Hacking Tools
- Hacking Tools Name
- Pentest Tools Subdomain
- Hacking Tools Usb
- Hack Tools For Ubuntu
- Hacking Tools Online
- Hacker Tools Software
- Hack Tools Online
- Hacking Tools For Windows Free Download
- Hacker Tools For Pc
- Hacking Apps
- Pentest Tools Tcp Port Scanner
- Pentest Reporting Tools
- Physical Pentest Tools
- Hacker Tools Mac
- How To Make Hacking Tools
- Pentest Tools Online
- Hacking Tools Usb
- Hacker Tools Apk
- Hacker Tools 2019
- Blackhat Hacker Tools
- Hack Tools Download
- Hacker Techniques Tools And Incident Handling
- Hacking Tools Software
- New Hacker Tools
- Hacking Tools Hardware
- Hack Tools 2019
- Beginner Hacker Tools
- Best Hacking Tools 2020
- Hacker Tools 2019
- Pentest Reporting Tools
- Hacking Tools For Pc
- Pentest Automation Tools
- Android Hack Tools Github
- Usb Pentest Tools
- Hacking Tools For Windows
- Pentest Box Tools Download
- Android Hack Tools Github
- New Hack Tools
- Hack Rom Tools
- Hacking Tools For Mac
- Hacker Tools
- Hack Tools Pc
- Pentest Automation Tools
- Hacker Techniques Tools And Incident Handling
- Hacking Tools Online
- Hack Tools 2019
- Ethical Hacker Tools
- Hacking Tools Usb
- Game Hacking
- Hacking Apps
- Easy Hack Tools
- Termux Hacking Tools 2019
- Pentest Automation Tools
- Hacker Tools Linux
- Physical Pentest Tools
- What Is Hacking Tools
- Hack Apps
- Tools For Hacker
- Hack Tools
- Beginner Hacker Tools
- Hacker Tools Linux
- Hack Tools Github
- Hacking Tools Github
- Pentest Tools Windows
- Hacking Tools And Software
- Hacker Tools 2020
- Computer Hacker
- Pentest Tools Website Vulnerability
- Hacker Tools 2019
- Tools 4 Hack
- Pentest Tools Nmap
- Pentest Tools Android
- Hack Tools For Pc
- Hacking Tools Windows
- Pentest Tools Subdomain
- Pentest Tools Open Source
- Hacking Tools Online
- Best Hacking Tools 2019
- Pentest Tools Windows
- Best Pentesting Tools 2018
- Hacking Tools Windows
- Hack Tools For Pc
- Pentest Tools Find Subdomains
- How To Install Pentest Tools In Ubuntu
- Usb Pentest Tools
- Pentest Tools Website
- Pentest Tools Framework
- Hacking Tools 2019
- Pentest Tools Windows
- Ethical Hacker Tools
- Game Hacking
- Hacker Tools For Ios
- Hack Tools Download
- Hacking App
- Hack Tools Online
- Hack Tools For Pc
- Pentest Tools Port Scanner
- Nsa Hacker Tools
- Pentest Box Tools Download
- Best Pentesting Tools 2018
- How To Make Hacking Tools
- Hacking Tools For Beginners
- Hack Apps
- Pentest Tools For Windows
- Pentest Recon Tools
- Tools Used For Hacking
- Hackrf Tools
- Pentest Tools For Android
- Hacking Tools For Windows 7
- Hacker Tools Software
- Wifi Hacker Tools For Windows
- Hacking Tools For Kali Linux
No comments:
Post a Comment