SlickQuiz for Wordpress 1.3.7.1 "/wp-admin/admin.php?page=slickquiz-*" Multiple Authenticated SQL Injections
Sep 10, 2019 · By Julien Ahrens
ADVISORY INFORMATION
- Product: SlickQuiz
- Vendor URL: https://wordpress.org/plugins/slickquiz
- Type: SQL Injection [CWE-74]
- Date found: 2019-05-30
- Date published: 2019-09-10
- CVSSv3 Score: 8.1 (CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N)
- CVE: CVE-2019-12516
CREDITS
This vulnerability was discovered and researched by Julien Ahrens from RCE Security.
VERSIONS AFFECTED
SlickQuiz for Wordpress 1.3.7.1 (latest)
INTRODUCTION
SlickQuiz is a plugin for displaying and managing pretty, dynamic quizzes. It uses the SlickQuiz jQuery plugin.
(from the vendor’s homepage)
VULNERABILITY DETAILS
The SlickQuiz Wordpress plugin is vulnerable to multiple authenticated SQL Injections whenever the “id” parameter is involved. It is not even required to have any quiz created, just the pure presence of the plugin makes the installation vulnerable.
Since all access levels from Subscriber (the lowest possible rights) to Admin basically have access to the plugin, it is possible to escalate privileges quite easily.
To name just a few vulnerable endpoints:
/wp-admin/admin.php?page=slickquiz-scores&id=(selectfrom(select(sleep(5)))a) /wp-admin/admin.php?page=slickquiz-edit&id=(selectfrom(select(sleep(5)))a) /wp-admin/admin.php?page=slickquiz-preview&id=(select*from(select(sleep(5)))a)
RISK
The vulnerability can be used by an authenticated attacker (lowest possible rights of Subscriber are sufficient) to read sensitive contents from the backend database and therefore compromise all kinds of information, which is stored in the database. This could be sensitive authentication information like passwords or customer and employee information like email addresses and could also be used to escalate privileges to Admin which in return leads to RCE on the Wordpress installation via the plugin functionality.
SOLUTION
None (Remove the plugin)
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-12516
- 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.