- Advisory ID: DRUPAL-SA-CONTRIB-2014-092
- Project: Services (third-party module)
- Version: 7.x
- Date: 2014-September-24
- Security risk: 11/25 ( Moderately Critical) AC:Complex/A:User/CI:None/II:Some/E:Proof/TD:All
- Vulnerability: Cross Site Scripting, Access bypass
Description
The Services module enables you to expose an API to third party systems using REST, XML-RPC or other protocols.
New user’s password set to weak password in _user_resource_create()
When creating a new user account via Services, the new user’s password was set to a weak password.
This issue is mitigated by the fact that the user resource must be enabled (or least have been enabled in the past) and new user registration permitted via Services.
Action required: This release of Services comes with an interface and a drush command to perform actions in order to secure your site and get rid of this vulnerability. After installing this release and running the regular database updates, make sure to read all the information provided at admin/config/services/services-security, and pick the option most suited to your site. For example, you can reset the password of all user accounts that have been created since August 30th, 2013 (recommended).
Unfiltered JSONP callback parameter (XSS)
The JSONP response of a callback parameter is unfiltered and outputs raw HTTP data. This can lead to arbitrary JavaScript execution.
This issue is mitigated by the fact that JSONP is not enabled by default in the REST server response formatters and the HTTP client Accept header must be set to text/javascript or application/javascript if the “xml” formatter is enabled.
Services module now restricts callback parameters to alphanumeric characters only and a hard limit of 60 characters.
Flood control for user login bypass
Flood control was not properly enforced leaving it vulnerable to brute force attacks. Services now implements flood control just like core Drupal does.
CVE identifier(s) issued
- A CVE identifier will be requested, and added upon issuance, in accordance
with Drupal Security Team processes.
Versions affected
- Services 7.x-3.x versions prior to 7.x-3.10.
Drupal core is not affected. If you do not use the contributed Services module,
there is nothing you need to do.
Solution
Install the latest version:
- If you use the Services module for Drupal 7.x, upgrade to Services 7.x-3.10
- follow the security update instructions at admin/config/services/services-security
Also see the Services project page.
Reported by
- Sam Metson reported the user password issue
- Régis Leroy reported the XSS issue
- Chris Oden reported the flood control issue
Fixed by
- Kyle Browning the module maintainer
- Stéphane Corlosquet of the Drupal Security Team
Coordinated by
- Greg Knaddison of the Drupal Security Team
- Stéphane Corlosquet 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.