CVE-2015-2559
NoneCVSS
—
EPSS
1.6%
Published
Mar 25, 2015
CISA due date
—
Cloudanix analysis
Someone who knows another user's password can trick the system into letting them change that user's password and take over the account.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- Web Framework
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw permits an authenticated user sharing an identical password hash with another account to bypass authorization checks via a specially crafted password reset URL and forcibly change the other account's password.
Why it matters to the business
Attackers can seize control of additional user accounts, enabling unauthorized access to sensitive information, administrative functions, or further compromise of the application.
How an attack unfolds
An attacker first obtains or identifies an account whose password hash matches a target account, then crafts and submits a malicious password reset URL that the application accepts without proper ownership validation, thereby resetting the target's password and allowing login as that user.
How to fix it
Upgrade Drupal 6.x installations to version 6.35 or later and Drupal 7.x installations to version 7.35 or later; apply the exact GIT fixes bcd100d812b525c982cf75d6c6dabe839f61634a for php/php-src and 5e60a2770329300866319aac1ab465159688d319 for drupal/drupal.
How to confirm the fix worked
Confirm the running Drupal version is at least 6.35 or 7.35, verify the listed GIT commits are present in the codebase, and test that password reset requests are rejected when the requesting user does not own the target account.
Typical attack path
- Locate or create an account sharing a password hash with the target
- Craft a malicious password reset URL targeting the other account
- Submit the URL through the application's reset mechanism
- Authenticate using the newly set password on the target account
How to detect it
Inspect web server and application logs for password reset requests originating from authenticated sessions that reference accounts other than the session owner; correlate with successful logins using recently reset credentials.
What your security team should do
- Apply the listed Drupal version upgrades immediately given the multi-year exposure window
- Audit all accounts for shared password hashes and enforce unique strong passwords
- Review access logs for historical password reset anomalies
- Implement additional authorization checks around password reset flows if patching is delayed
The record
Drupal 6.x before 6.35 and 7.x before 7.35 allows remote authenticated users to reset the password of other accounts by leveraging an account with the same password hash as another account and a crafted password reset URL.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:7 | drupal7 | 0 | 7.14-2+deb7u9 |
| Mageia:4 | drupal | 0 | 7.35-1.mga4 |
| Ubuntu:Pro:14.04:LTS | drupal7 | 0 | 7.26-1ubuntu0.1+esm1 |
| Ubuntu:Pro:16.04:LTS | drupal7 | 0 | 7.44-1ubuntu1~16.04.0+esm1 |
Related vulnerabilities
- CVE-2014-9016 The password hashing API in Drupal 7.x before 7.34 and the Secure Password Hashes (aka… Also affects drupal7
- CVE-2014-3704 The expandArguments function in the database abstraction API in Drupal core 7.x before… Also affects drupal7
- CVE-2014-5266 The Incutio XML-RPC (IXR) Library, as used in WordPress before 3.9.2 and Drupal 6.x… Also affects drupal7
- CVE-2024-55635 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site… Also affects drupal7
- CVE-2024-12393 Drupal Core Cross-Site Scripting (XSS) Also affects drupal7
- CVE-2024-55637 Drupal core contains a potential PHP Object Injection vulnerability Also affects drupal7
- CVE-2024-55634 Drupal core Access bypass Also affects drupal7
- CVE-2024-55636 Drupal core contains a potential PHP Object Injection vulnerability Also affects drupal7