This article is more than 1 year old

Ew, that's unsanitary: SEO plugin for WordPress would run arbitrary JavaScript inputs instead of scrubbing them

XSS vuln could hijack websites so update your All in One pack

A popular WordPress search engine optimisation plugin with around two million installs could have been abused to hijack a target website, according to a threat intel firm.

"This flaw allowed authenticated users with contributor level access or above the ability to inject malicious scripts that would be executed if a victim accessed the wp-admin panel's 'all posts' page," said WordPress-focused infosec biz Wordfence in a blog post about the vuln in the All in One SEO Pack plugin.

The cross-site scripting (XSS) vuln could have been abused to hijack control of a targeted site from its operators. With WordPress powering a large number of high-profile websites, and All in One SEO being very popular (and free at its basic tier), the potential impact of the vuln was widespread.

As its name suggests, the plugin is intended to make the appearance of one's blog posts on Google search results a simple and automated process. Among other things, the plugin creates SEO-specific input fields on new posts with the aim of boosting the post's search ranking in response to certain specified terms.

"Unfortunately, the SEO meta data for posts, including the SEO title and SEO description fields, had no input sanitization allowing lower-level users like contributors and authors the ability to inject HTML and malicious JavaScript into those fields," said Wordfence.

Worse, JavaScript inserted into those fields "would also be executed when visiting the page directly if a closing tag was inserted by an attacker before adding their own script". Instead of sanitising inputs, the plugin merely executed them – so escaping the plugin's own </script> tag was trivially easy.

Larger WordPress websites allow varying levels of user privileges: a Contributor can write whatever they want but their post must be approved by an Editor or Administrator before it is published. To do so, the higher-priv'd account must access the site's "all posts" page in the backend. An attacker who compromised a lower-level account could insert arbitrary JS into the SEO plugin metadata fields, with that JS being executed once the admin opened the draft post for editing.

All in One SEO Pack's devs have now patched the vuln in version 3.6.2 by sanitising inputs. Users of the popular plugin should install the latest update.

"If someone calls you, sends you an email, or contacts you in any way saying they need access to your site for any reason, and it's not coming from someone you know and trust, then it might be a social engineering attempt. Never provide credentials or user account access unless you can trust and verify who you are providing that information to," urged Wordfence, adding that blog admins should enable 2FA where possible to harden all account privilege levels against takeovers. ®

More about

More about

More about


Send us news

Other stories you might like