Google Analytics by Yoast Premium version 5.4.4 suffers from a stored cross site scripting vulnerability.
c0163ebe83b5d4c6dcaea3d2ad3c2581e8e147f06e227869bce5efa31c905550
Details
================
Software: Google Analytics by Yoast Premium
Version: 5.4.4
Homepage: https://yoast.com/wordpress/plugins/google-analytics/
Advisory report: https://security.dxw.com/advisories/xss-in-google-analytics-by-yoast-premium-by-privileged-users/
CVE: Awaiting assignment
CVSS: 5.5 (Medium; AV:N/AC:L/Au:S/C:P/I:P/A:N)
Description
================
Stored XSS in Google Analytics by Yoast Premium allows privileged users to attack other users
Vulnerability
================
A user with the “manage_options” capability but not the “unfiltered_html” capability is able to add arbitrary JavaScript to a page visible to admins.
In the default configuration of WordPress, all users with the “manage_options” capability have the “unfiltered_html” capability. However it is possible to remove the “unfiltered_html” capability from (non-super) admin users. Therefore this presents a vulnerability in which an authenticated user is able to exceed their privileges.
Proof of concept
================
Remove the “unfiltered_html” capability from the admin role and log in as a non-super admin
For testing you can remove that capability from all users with this line: add_filter(‘user_has_cap‘, function ($allcaps, $cap, $args) { $allcaps[‘unfiltered_html‘] = false; return $allcaps; }, 10, 3);
Visit Analytics > Settings
Click the Advanced tab
Enter the following into the Subdomain tracking field (including the quotes): ” onfocus=”alert(1)
Click Save changes
Refresh the page
Click the Advanced tab
Focus the Subdomain tracking field by clicking it or tabbing to it
alert(1) will be called
Mitigations
================
Upgrade to version 5.4.5 or later.
If all users have the ‘unfiltered_html’ capability, or there is only one admin, then there is no issue.
Disclosure policy
================
dxw believes in responsible disclosure. Your attention is drawn to our disclosure policy: https://security.dxw.com/disclosure/
Please contact us on security@dxw.com to acknowledge this report if you received it via a third party (for example, plugins@wordpress.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.
Timeline
================
2015-07-21: Discovered
2015-07-22: Reported to vendor via email
2015-07-22: Requested CVE
2015-08-10: Vendor confirmed fixed in version 5.4.5
2015-08-10: Published
Discovered by dxw:
================
Tom Adams
Please visit security.dxw.com for more information.