• Advisory ID: DRUPAL-SA-CORE-2010-002
  • Project: Drupal core
  • Version: 5.x, 6.x
  • Date: 2010-August-11
  • Security risk: Critical
  • Exploitable from: Remote
  • Vulnerability: Multiple vulnerabilities

Description

Multiple vulnerabilities and weaknesses were discovered in Drupal.

OpenID authentication bypass

The OpenID module provides users the ability to login to sites using an OpenID account.

The OpenID module doesn’t implement all the required verifications from the OpenID 2.0 protocol and is vulnerable to a number of attacks.

Specifically:
– OpenID should verify that a “openid.response_nonce” has not already been used for an assertion by the OpenID provider
– OpenID should verify the value of openid.return_to as obtained from the OpenID provider
– OpenID must verify that all fields that are required to be signed are signed

These specification violations allow malicious sites to harvest positive assertions from OpenID providers and use them on sites using the OpenID module to obtain access to preexisting accounts bound to the harvested OpenIDs. Intercepted assertions from OpenID providers can also be replayed and used to obtain access to user accounts bound to the intercepted OpenIDs.

This issue affects Drupal 6.x only. A separate security announcement and release is published for the contributed OpenID module for Drupal 5.x.

File download access bypass

The upload module allows users to upload files and provides access checking for file downloads.

The module looks up files for download in the database and serves them for download after access checking. However, it does not account for the fact that certain database configurations will not consider case differences in file names. If a malicious user uploads a file which only differs in letter case, access will be granted for the earlier upload regardless of actual file access to that.

This issue affects Drupal 5.x and 6.x.

Comment unpublishing bypass

The comment module allows users to leave comments on content on the site.

The module supports unpublishing comments by privileged users. Users with the “post comments without approval” permission however could craft a URL which allows them to republish previously unpublished comments.

This issue affects Drupal 5.x and 6.x.

Actions cross site scripting

The actions feature combined with Drupal’s trigger module allows users to configure certain actions to happen when users register, content is submitted, and so on; through a web based interface.

Users with “administer actions permission” can enter action descriptions and messages which are not properly filtered on output. Users with content and taxonomy tag submission permissions can create nodes and taxonomy terms which are not properly sanitized for inclusion in action messages and inject arbitrary HTML and script code into Drupal pages. Such a cross-site scripting attack may lead to the malicious user gaining administrative access. Wikipedia has more information about cross-site scripting (XSS).

This issue affects Drupal 6.x only.

Versions affected

  • Drupal 6.x before version 6.18 or 6.19.
  • Drupal 5.x before version 5.23.

Solution

Install the latest version:

Drupal 5 will no longer be maintained when Drupal 7 is released. Upgrading to Drupal 6 is recommended.

The security team starts a new practice of releasing both a pure security update without other bugfixes and a security update combined with other bug fixes and improvements. You can choose to either only include the security update for an immediate fix (which might require less quality assurance and testing) or more fixes and improvements alongside the security fixes by choosing between Drupal 6.18 and Drupal 6.19. Read the announcement for more information.

Reported by

The OpenID authentication bypass issues were reported by Johnny Bufu, Christian Schmidt and Heine Deelstra (*).
The file download access bypass was reported by Wolfgang Ziegler.
The comment unpublish bypass issue was reported by Heine Deelstra (*).
The actions module cross site scripting was reported by Justin Klein Keane and Heine Deelstra (*).

(*) Member of the Drupal security team.

Fixed by

The OpenID authentication issues were fixed by Christian Schmidt, Heine Deelstra (*) and Damien Tournoud (*).
The file download access bypass was fixed by Dave Reid (*) and Neil Drumm (*).
The comment unpublish bypass issue was fixed by Heine Deelstra (*).
The actions module cross site scripting was fixed by Justin Klein Keane and Heine Deelstra (*).

(*) Member of the Drupal security team.

Contact

The security team for Drupal can be reached at security at drupal.org or via the form at http://drupal.org/contact.