- Advisory ID: DRUPAL-SA-CORE-2014-001
- Project: Drupal core
- Version: 6.x, 7.x
- Date: 2014-January-15
- Security risk: Highly critical
- Exploitable from: Remote
- Vulnerability: Multiple vulnerabilities
Description
Multiple vulnerabilities were fixed in the supported Drupal core versions 6 and 7.
Impersonation (OpenID module – Drupal 6 and 7 – Highly critical)
A vulnerability was found in the OpenID module that allows a malicious user to log in as other users on the site, including administrators, and hijack their accounts.
This vulnerability is mitigated by the fact that the malicious user must have an account on the site (or be able to create one), and the victim must have an account with one or more associated OpenID identities.
Access bypass (Taxonomy module – Drupal 7 – Moderately critical)
The Taxonomy module provides various listing pages which display content tagged with a particular taxonomy term. Custom or contributed modules may also provide similar lists. Under certain circumstances, unpublished content can appear on these pages and will be visible to users who should not have permission to see it.
This vulnerability is mitigated by the fact that it only occurs on Drupal 7 sites which upgraded from Drupal 6 or earlier.
Security hardening (Form API – Drupal 7 – Not critical)
The form API provides a method for developers to submit forms programmatically using the function drupal_form_submit(). During programmatic form submissions, all access checks are deliberately bypassed, and any form element may be submitted regardless of the current user’s access level.
This is normal and expected behavior for most uses of programmatic form submissions; however, there are cases where custom or contributed code may need to send data provided by the current (untrusted) user to drupal_form_submit() and therefore need to respect access control on the form.
To facilitate this, a new, optional $form_state[‘programmed_bypass_access_check’] element has been added to the Drupal 7 form API. If this is provided and set to FALSE, drupal_form_submit() will perform the normal form access checks against the current user while submitting the form, rather than bypassing them.
This change does not fix a security issue in Drupal core itself, but rather provides a method for custom or contributed code to fix security issues that would be difficult or impossible to fix otherwise.
CVE identifier(s) issued
- Impersonation (OpenID module – Drupal 6 and 7 – Highly critical): CVE-2014-1475
- Access bypass (Taxonomy module – Drupal 7 – Moderately critical): CVE-2014-1476
- Security hardening (Form API – Drupal 7 – Not critical): No CVE necessary.
Versions affected
- Drupal core 6.x versions prior to 6.30.
- Drupal core 7.x versions prior to 7.26.
Solution
Install the latest version:
- If you use Drupal 6.x, upgrade to Drupal core 6.30.
- If you use Drupal 7.x, upgrade to Drupal core 7.26.
Also see the Drupal core project page.
Reported by
- The OpenID module impersonation issue was reported by Christian Mainka and Vladislav Mladenov.
- The Taxonomy module access bypass issue was reported by Matt Vance, and by Damien Tournoud of the Drupal Security Team.
- The form API access bypass issue was reported by David Rothstein of the Drupal Security Team.
Fixed by
- The OpenID module impersonation issue was fixed by Damien Tournoud, Heine Deelstra, Peter Wolanin, and David Rothstein, all of the Drupal Security Team.
- The Taxonomy module access bypass issue was fixed by Jibran Ijaz, and by Lee Rowlands of the Drupal Security Team.
- The form API access bypass issue was fixed by Damien Tournoud and David Rothstein of the Drupal Security Team, and by Marc Ingram and Kyle Browning.
Coordinated by
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.
Follow the Drupal Security Team on Twitter at https://twitter.com/drupalsecurity