
=====================================================================

                           CERT-Renater

               Note d'Information No. 2015/VULN053
_____________________________________________________________________

DATE                : 22/04/2015

HARDWARE PLATFORM(S): /

OPERATING SYSTEM(S): Systems running WordPress Plugins.

======================================================================
https://blog.sucuri.net/2015/04/security-advisory-xss-vulnerability-affecting-multiple-wordpress-plugins.html
______________________________________________________________________

Security Advisory: XSS Vulnerability Affecting Multiple WordPress Plugins

By Daniel Cid on April 20, 2015 . 22 Comments

Multiple WordPress Plugins are vulnerable to Cross-site Scripting (XSS)
due to the misuse of the add_query_arg() and remove_query_arg()
functions. These are popular functions used by developers to modify and
add query strings to URLs within WordPress.

The official WordPress Official Documentation (Codex) for these
functions was not very clear and misled many plugin developers to use
them in an insecure way. The developers assumed that these functions
would escape the user input for them, when it does not. This simple
detail, caused many of the most popular plugins to be vulnerable to XSS.


To date, this is the list of affected plugins:

    Jetpack
    WordPress SEO
    Google Analytics by Yoast
    All In one SEO
    Gravity Forms
    Multiple Plugins from Easy Digital Downloads
    UpdraftPlus
    WP-E-Commerce
    WPTouch
    Download Monitor
    Related Posts for WordPress
    My Calendar
    P3 Profiler
    Give
    Multiple iThemes products including Builder and Exchange
    Broken-Link-Checker
    Ninja Forms


There are probably a few more that we have not listed. If you use
WordPress, we highly recommend that you go to your wp-admin dashboard
and update any out of date plugins now.

This issue was first identified by Joost from Yoast in one of his
plugins (he did a great write up about it as well). We worked together
with him to investigate the issue and found that it likely affected a
lot more plugins than just that one.

Our research team, along with a few friends (especially Joost from
Yoast ) have been going through the WordPress repository for the last
few days in an attempt to find and warn as many plugin developers as
possible – to warn and help them patch the issue.


Coordinated Disclosure

This vulnerability was initially discovered last week, due to the
varying degrees of severity and more importantly, the large volume of
plugins affected, we coordinated a joint security release with all
developers involved and the WordPress core security team. It was great
team work, and a pleasant experience to see so many developers united
and working together for the common good. We can happily say that all
plugins have been patched, and as of this morning updates should be
available to all users. (yes, everyone pushed their updates in unison 2
hours ago).

If you use WordPress, now it is your turn to update your plugins!

If you have automatic updates enabled, your site should already be
patched, especially in the most severe cases.


There are more plugins vulnerable

Our team only analyzed the top 300-400 plugins, far from all of them as
you might imagine. So there are likely a number of plugins still
vulnerable. If you’re a developer, check your code to see how you are
use these two functions:

add_query_arg
remove_query_arg

Make sure you are escaping them before use. We recommend using the
esc_url() (or esc_url_raw())functions with them. You should not assume
that add_query_arg and remove_query_arg will escape user input. The
WordPress team is providing more guidelines on how to use them here.


Update Time!

If you use any of these plugins, make sure to update them now! We will
continue to investigate and look for more plugins vulnerable and keep
our list here current.

This is also a good time to remind everyone that all software will have
bugs and some of those bugs will inevitably lead to security
vulnerabilities, such is the life we live in. This applies to plugins,
themes, webservers, CMS’s and basically anything that is written by
people and based on code. As much as developers try to minimize them
and deploy secure coding principles, mistakes will inevitably still
happen. We just have to be prepared and find ways to minimize the
affect of any vulnerability in your environment; a perfect example of
such an approach is what you’re seeing today with this coordinate
release.

Here are some tips and tricks to remember to help reduce your overall
threat risk, helping to improve your individual security posture:


    Patch. Keep your sites updated.

    Restrict. Restrictive access control. Restrict your wp-admin
directory to only white listed IP Addresses. Only give admin access to
users that really need it. Do not log in as admin unless you are really
doing admin work. These are some examples of restrictive access control
policies that can minimize the impact of vulnerabilities in your site.

    Monitor. Monitor your logs. They may give you clues to what is
happening on your site.

    Reduce your scope. Only use the plugins (or themes) that your site
really needs to function.

    Detect. Prevention may fail, so we recommend scan your site for
indicators of compromise or outdated software. Our plugin and Sitecheck
can do that for free for you.

    Defense in Depth. If you have an Intrusion Prevention System (IPS)
or Web Application Firewall (WAF), they can help block most common
forms of XSS exploits. You can even try our own CloudProxy to help you
with that. If you like the open source route, you can try OSSEC, Snort
and ModSecurity to help you achieve that.


These principles are commonly applied to most secure networks (or on
any business that needs to be PCI compliant), but not many website
owners think of them for their own site / environment.

These are but a few high level recommendations; we recommend going
through our blog for more ideas on how to keep your sites safe and
ahead of the threats.

=========================================================
Serveur de référence du CERT-Renater
https://services.renater.fr/ssi/
==========================================================
+ CERT-RENATER          | tel : 01-53-94-20-44           +
+ 23 - 25 Rue Daviel    | fax : 01-53-94-20-41           +
+ 75013 Paris           | email: cert@support.renater.fr +
==========================================================
