------------------------------------------------------------------------
Multiple Cross-Site Scripting vulnerabilities in Ninja Forms WordPress
Plugin
------------------------------------------------------------------------
Han Sahin, July 2016
------------------------------------------------------------------------
Abstract
------------------------------------------------------------------------
Multiple reflected Cross-Site Scripting (XSS) vulnerabilities have been
found in the Ninja Forms WordPress Plugin. By using this issue an
attacker can inject malicious JavaScript code into the application,
which will execute within the browser of any user who views the relevant
application content.
------------------------------------------------------------------------
OVE ID
------------------------------------------------------------------------
OVE-20160714-0017
------------------------------------------------------------------------
Tested versions
------------------------------------------------------------------------
This issue was successfully tested on Ninja Forms WordPress Plugin [2]
version 2.9.51.
------------------------------------------------------------------------
Fix
------------------------------------------------------------------------
This issue is resolved in Ninja Forms v2.9.52 (18 July 2016) [3].
------------------------------------------------------------------------
Introduction
------------------------------------------------------------------------
The WordPress Ninja Forms plugin [2] is a plugin that simplifies
creating forms and managing submissions. Multiple reflected Cross-Site
Scripting vulnerabilities have been discovered in the WordPress Ninja
Forms plugin that allow an unauthenticated attacker to inject malicious
JavaScript code into the application, which will execute within the
browser of any user who views the relevant application content. The
attacker-supplied code can perform a wide variety of actions, such as
stealing victims' session tokens or login credentials, performing
arbitrary actions on their behalf, and logging their keystrokes or
deliver malware.
------------------------------------------------------------------------
Details
------------------------------------------------------------------------
The WordPress Ninja Forms plugin insufficiently performs CSRF validation
(ajaxreferer and nonce) and fails to perform output encoding according
to context at any point where user-supplied input is copied into
application responses. The vulnerability at least resides in the
admin-ajax.php and edit.php page actions of the Ninja Forms plugin. As a
result this malicious code will be executed.
Authenticated WP-Admins can be induced to issue the attacker's crafted
request in various ways. For example, the attacker can send a victim a
link containing a malicious URL or they can create an innocuous looking
web site that causes anyone viewing it to make arbitrary cross-domain
requests to the vulnerable application (using GET).
------------------------------------------------------------------------
Proof of concept
------------------------------------------------------------------------
These vulnerabilities can be demonstrated by submitting the following
requests to the form_id parameter of the admin-ajax.php and edit.php
pages respectively:
/wp-admin/admin-ajax.php?step=4&total_steps=6&args[form_id]=1lxmjgmeiij&args[filename]=kllk'<&action=nf_download_all_subs
/wp-admin/edit.php?post_status=all&post_type=nf_sub&action=-1&m=0&form_id=1'>