Abstract
It was found that the Insert PHP WordPress Plugin allows an authenticated user with Contributor role (or higher) to run arbitrary PHP code. Consequently, this effectively disables any security controls implemented in WordPress.
Contact
For feedback or questions about this advisory mail us at sumofpwn at securify.nl
The Summer of Pwnage
This issue has been found during the Summer of Pwnage hacker event, running from July 1-29. A community summer event in which a large group of security bughunters (worldwide) collaborate in a month of security research on Open Source Software (WordPress this time). For fun. The event is hosted by Securify in Amsterdam.
OVE ID
OVE-20160712-0001
Tested versions
These issues were successfully tested on Insert PHP WordPress Plugin version 1.3.
Fix
There is currently no fix available. The author of the Insert PHP WordPress Plugin has indicated that this issue will not be resolved/mitigated.
Introduction
The Insert PHP WordPress Plugin allows PHP code inserted into WordPress posts and pages. The plugin exposes the insert_php shortcode, which is used to insert and run the PHP code in a post or page. A Contributor or higher is allowed to use this shortcode, this effectively disables any security controls implemented in WordPress.
Details
An authenticated user with Contributor role (or higher), can make a new post and execute any command on the server. Since the privileges of a Contributor are normally restricted, using the insert_php shortcode effectively disables any security controls implemented in WordPress.
Proof of concept
Create a new post and add the following shortcode:
[insert_php]eval(base64_decode('c3lzdGVtKCdjYXQgL2V0Yy9wYXNzd2QnKTs='));[/insert_php]