OVERVIEW ========== Google Analytics by Yoast is a WordPress plug-in for monitoring website traffic. With approximately seven million downloads it’s one of the most popular WordPress plug-ins. A security vulnerability in the plug-in allows an unauthenticated attacker to store arbitrary HTML, including JavaScript, in the WordPress administrator’s Dashboard on the target system. The JavaScript will be triggered when an administrator views the plug-in’s settings panel. No further user interaction is required. Typically this can be used for arbitrary server-side code execution via the plugin or theme editors. Alternatively the attacker could change the administrator’s password, create new administrator accounts, or do whatever else the currently logged-in administrator can do on the target site. DETAILS ======= The impact is a combination of two underlying problems. Firstly, missing access control allows an unauthenticated user to modify some of the settings associated with the plug-in. It’s possible overwrite the existing OAuth2 credentials which the plug-in uses for retrieving data from Google Analytics, and thereby connect the plug-in with the attacker’s own Google Analytics account. Secondly, the plug-in renders an HTML dropdown menu based on the data downloaded from Google Analytics. This data is not sanitized or HTML-escaped. If the said attacker enters HTML code such as This would fire an alert box whenever an administrator views the Analytics settings page in the Dashboard of the target WordPress site. A real-world attack would probably use a src attribute to load a more sophisticated script from an external site. It could make chained ajax calls to load and submit administrative forms, including those of the plugin editor to write server-side PHP code, and finally execute it. SOLUTION ========= Yoast was notified on March 18, 2015. A new version of the plug-in (5.3.3) was released the next day. CREDITS ======== The vulnerability was found by Jouko Pynnönen of Klikki Oy, Finland. An up-to-date version of this document is available at http://klikki.fi/adv/yoast_analytics.html -- Jouko Pynnönen Klikki Oy - http://klikki.fi - @klikkioy