DefenseCode ThunderScan SAST Advisory
WordPress No External Links Plugin
Security Vulnerability
Advisory ID: DC-2017-01-022
Advisory Title: WordPress No External Links Plugin Security
Vulnerability
Advisory URL: http://www.defensecode.com/advisories.php
Software: WordPress No External Links Plugin
Language: PHP
Version: 3.5.17 and below
Vendor Status: Vendor contacted, update released
Release Date: 2017/05/29
Risk: Medium
1. General Overview
===================
During the security audit of No External Links plugin for WordPress
CMS, security vulnerability was discovered using DefenseCode
ThunderScan application source code security analysis platform.
More information about ThunderScan is available at URL:
http://www.defensecode.com
2. Software Overview
====================
According to the plugin developers, this plugin has many cool
features a outgoing clicks stats, fulllink masking, custom redirects,
masking links to digital short code and base64 encoding and so on. It
is designed for specialists who sell different kind of advertisment on
their web site (for example, with sape system) and care about the
number of outgoing links that can be found by search engines. It has
more than 20,000 downloads on wordpress.org.
Homepage:
https://wordpress.org/plugins/wp-noexternallinks/
http://jehy.ru/articles/2008/10/05/wordpress-plugin-no-external-links/
3. Vulnerability Description
==================================
During the security analysis, ThunderScan discovered Cross-Site
Scripting vulnerability in No External Links WordPress plugin.
The Cross-Site Scripting vulnerability can enable the attacker to
construct the URL that contains malicious JavaScript code. If the
administrator of the site makes a request to such an URL, the
attacker's code will be executed, with unrestricted access to the
WordPress site in question. The attacker can entice the administrator
to visit the URL in various ways, including sending the URL by email,
posting it as a part of the comment on the vulnerable site or another
forum.
3.1. Cross-Site Scripting
Function: echo
Variable: $_REQUEST['date1'], $_REQUEST['date2']
Sample URL:
http://vulnerablesite.com/wp-admin/options-general.php?page=wp-noexternallinks%2Fwp-noexternallinks-options.php&action=stats&date1=">
Sample URL:
http://vulnerablesite.com/wp-admin/options-general.php?page=wp-noexternallinks%2Fwp-noexternallinks-options.php&action=stats&date2=">
File: wp-noexternallinks\wp-noexternallinks-options.php
---------
125 $date1 = $_REQUEST['date1'];
...
129 $date2 = $_REQUEST['date2'];
...
134
135