Researchers from Sucuri have identified a remote file upload vulnerability in a popular WordPress plugin that has been downloaded more than 1.7 million times. The security hole has been patched by the developers.
According to the security company, the affected plugin is MailPoet, which enables WordPress users to easily create newsletters, post notifications and create autoresponders.
The flaw can be exploited by an attacker to upload any PHP file to affected websites, allowing them to abuse the site for phishing, spam, malware attacks and other malicious activities, Sucuri said. It's worth noting that the attacker doesn't need to have any accounts or privileges on the targeted website for the attack to work.
While they haven't provided many technical details of the vulnerability to prevent abuse, Sucuri explained that the security hole is a result of an erroneous assumption made by the developers.
"The vulnerability resides in the fact that the developers assumed that WordPress’s “admin_init” hooks were only called when an administrator user visited a page inside /wp-admin/," Daniel Cid, the CTO and founder of Sucuri, wrote in a blog post. "It is a easy mistake to make and they used that hook (admin_init) to verify if a specific user was allowed to upload files. However, any call to /wp-admin/admin-post.php also executes this hook without requiring the user to be authenticated. Thus making their theme upload functionality available to everybody."
Cid advises developers never to use admin_init() or is_admin() as an authentication method.
The developers of MailPoet were notified of the existence of the vulnerability a few weeks ago, and they released version 2.6.7 of the plugin on Tuesday to address the issue. All previous versions of the application are affected so users are advised to update their installations as soon as possible.