- Advisory ID: DRUPAL-SA-CORE-2014-004
- Project: Drupal core
- Version: 6.x, 7.x
- Date: 2014-August-06
- Security risk: 13/25 ( Moderately Critical) AC:None/A:None/CI:None/II:None/E:Proof/TD:100
- Exploitable from: Remote
- Vulnerability: Denial of service
Description
Drupal 6 and Drupal 7 include an XML-RPC endpoint which is publicly available (xmlrpc.php). The PHP XML parser used by this XML-RPC endpoint is vulnerable to an XML entity expansion attack and other related XML payload attacks which can cause CPU and memory exhaustion and the site’s database to reach the maximum number of open connections. Any of these may lead to the site becoming unavailable or unresponsive (denial of service).
All Drupal sites are vulnerable to this attack whether XML-RPC is used or not.
In addition, a similar vulnerability exists in the core OpenID module (for sites that have this module enabled).
This is a joint release as the XML-RPC vulnerability also affects WordPress (see the announcement).
CVE identifier(s) issued
- CVE-2014-5265 has been issued for the code changes in xmlrpc.inc which prevent entity declarations and therefore address the “vulnerable to an XML entity expansion attack … can cause CPU and memory exhaustion” concern.
- CVE-2014-5266 has been issued for the “Skip parsing if there is an unreasonably large number of tags” in both xmlrpc.inc and xrds.inc.
- CVE-2014-5267 has been issued for the code change to reject any XRDS document with a /<!DOCTYPE/i match.
Versions affected
- Drupal core 7.x versions prior to 7.31.
- Drupal core 6.x versions prior to 6.33.
Solution
Install the latest version:
- If you use Drupal 7.x, upgrade to Drupal core 7.31.
- If you use Drupal 6.x, upgrade to Drupal core 6.33.
If you are unable to install the latest version of Drupal immediately, you can alternatively remove the xmlrpc.php file from the root of Drupal core (or add a rule to .htaccess to prevent access to xmlrpc.php) and disable the OpenID module. These steps are sufficient to mitigate the vulnerability in Drupal core if your site does not require the use of XML-RPC or OpenID functionality. However, this mitigation will not be effective if you are using a contributed module that exposes Drupal’s XML-RPC API at a different URL (for example, the Services module); updating Drupal core is therefore strongly recommended.
Also see the Drupal core project page.
Reported by
Fixed by
- Andrew Nacin of the WordPress Security Team
- Michael Adams of the WordPress Security Team
- Frédéric Marand
- David Rothstein of the Drupal Security Team
- Damien Tournoud of the Drupal Security Team
- Greg Knaddison of the Drupal Security Team
- Stéphane Corlosquet of the Drupal Security Team
- Dave Reid of the Drupal Security Team
Coordinated by
- The Drupal Security Team and the WordPress Security Team
Contact and More Information
The Drupal security team can be reached at security at drupal.org or via the contact form at http://drupal.org/contact.
Learn more about the Drupal Security team and their policies, writing secure code for Drupal, and securing your site.