WordPress SlickQuiz plugin version 220.127.116.11 suffers from a persistent cross site scripting vulnerability.
RCE Security Advisory
1. ADVISORY INFORMATION
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)
This vulnerability was discovered and researched by Julien Ahrens from
3. VERSIONS AFFECTED
SlickQuiz for WordPress 18.104.22.168 (latest)
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
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
POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
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.
To successfully exploit this vulnerability an authenticated user must be tricked
into visiting the SlickQuiz administrative backend on the affected WordPress
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.
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.