Authenticated SSRF vulnerability in the heat dashboard (horizon dashboard)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
heat-dashboard |
New
|
Undecided
|
Unassigned |
Bug Description
Hello,
I found a SSRF vulnerability in the "Stack Preview" functionality. This functionality can be reached like this :
- on the left hand size menu (of the horizon dashboard) click
"
- then from the submenu select
"Stacks"
- then on the right of the screen the button
is present.
- then in the
"Template Source"
- it is possible to select "URL" and choose an arbitrary address including internal IP addresses. The result can be retrieved from "alert-danger" div tag class on the server response.
This makes it possible to perform GET request on arbitrary ports and IP (external or internal). The code that is being executed during the URL request is located here :
heat/
def get(url, allowed_
"""Get the data at the specified URL.
The URL must use the http: or https: schemes.
The file: scheme is also supported if you override
the allowed_schemes argument.
Raise an IOError if getting the data fails.
"""
LOG.
components = urllib.
if components.scheme not in allowed_schemes:
raise URLFetchError(
if components.scheme == 'file':
try:
return urllib.
except urllib.
raise URLFetchError(
available on the https:/
Possible results include :
http://
http://
http://
http://
Which gives the attacker a good idea of which ports are open and what IP addresses are reachable.
In the attachement you can find a simple exploitation script.
Best regards,
information type: | Private Security → Public |
description: | updated |
description: | updated |
description: | updated |
While reports of suspected vulnerabilities for heat-dashboard are not normally coordinated by the OpenStack VMT, the reporter reached out to and subscribed us requesting some assistance as this has been sitting untriaged for over a month. I have in turn subscribed the Heat team's core security reviewers since I'm unsure who has initial visibility into private security bugs for heat-dashboard.
Given the probable low risk/impact from the described issue I'm inclined to recommend continuing discussion in public, but it's up to the Heat team and reporter to decide that.