- Advisory ID: DRUPAL-SA-CORE-2016-005
- Project: Drupal core
- Version: 7.x, 8.x
- Date: 2016-November-16
- Security risk: 13/25 ( Moderately Critical) AC:None/A:None/CI:Some/II:None/E:Theoretical/TD:Uncommon
- Vulnerability: Multiple vulnerabilities
Description
Inconsistent name for term access query (Less critical - Drupal 7 and Drupal 8)
Drupal provides a mechanism to alter database SELECT
queries before they are executed. Contributed and custom modules may use this mechanism to restrict access to certain entities by implementing hook_query_alter()
or hook_query_TAG_alter()
in order to add additional conditions. Queries can be distinguished by means of query tags. As the documentation on EntityFieldQuery::addTag() suggests, access-tags on entity queries normally follow the form ENTITY_TYPE_access
(e.g. node_access
). However, the taxonomy module's access query tag predated this system and used term_access
as the query tag instead of taxonomy_term_access
.
As a result, before this security release modules wishing to restrict access to taxonomy terms may have implemented an unsupported tag, or needed to look for both tags (term_access
and taxonomy_term_access
) in order to be compatible with queries generated both by Drupal core as well as those generated by contributed modules like Entity Reference. Otherwise information on taxonomy terms might have been disclosed to unprivileged users.
Incorrect cache context on password reset page (Less critical - Drupal 8)
The user password reset form does not specify a proper cache context, which can lead to cache poisoning and unwanted content on the page.
Confirmation forms allow external URLs to be injected (Moderately critical - Drupal 7)
Under certain circumstances, malicious users could construct a URL to a confirmation form that would trick users into being redirected to a 3rd party website after interacting with the form, thereby exposing the users to potential social engineering attacks.
Denial of service via transliterate mechanism (Moderately critical - Drupal 8)
A specially crafted URL can cause a denial of service via the transliterate mechanism.
CVE identifier(s) issued
- Inconsistent name for term access query: CVE-2016-9449
- Incorrect cache context on password reset page: CVE-2016-9450
- Confirmation forms allow external URLs to be injected: CVE-2016-9451
- Denial of service via transliterate mechanism: CVE-2016-9452
Versions affected
Solution
Install the latest version:
- If you use Drupal 7.x, upgrade to Drupal core 7.52
- If you use Drupal 8.x, upgrade to Drupal core 8.2.3
Also see the Drupal core project page.
Reported by
Inconsistent name for term access query:
Incorrect cache context on password reset page:
Confirmation forms allow external URLs to be injected:
Denial of service via transliterate mechanism:
- Lee Rowlands of the Drupal Security Team
Fixed by
Inconsistent name for term access query:
- znerol
- xjm of the Drupal Security Team
- David Rothstein of the Drupal Security Team
- Dave Reid of the Drupal Security Team
- Larry Garfield
Incorrect cache context on password reset page:
- Chris McCafferty, provisional Drupal Security Team member
- xjm of the Drupal Security Team
- Alex Pott of the Drupal Security Team
- Michael Hess of the Drupal Security Team
- Nathaniel Catchpole of the Drupal Security Team
Confirmation forms allow external URLs to be injected:
- Peter Wolanin of the Drupal Security Team
- Alex Pott of the Drupal Security Team
- David Rothstein of the Drupal Security Team
Denial of service via transliterate mechanism:
- Lee Rowlands of the Drupal Security Team
- Cathy Theys of the Drupal Security Team
- Alex Pott of the Drupal Security Team
- Peter Wolanin of the Drupal Security Team
- Daniel Wehner
- Nate Haug
- Heine Deelstra of the Drupal Security Team
Contact and More Information
The Drupal security team can be reached at security at drupal.org or via the contact form at https://www.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