CVE-2024-55638
NoneCVSS
—
EPSS
1.0%
Published
Dec 10, 2024
CISA due date
—
Cloudanix analysis
Drupal has a hidden flaw that could let attackers take over a website, but only if they already have another way to sneak in bad data, so updating to the newest version removes that risk.
- Exploitation
- Other
- Attacker needs
- Other
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Web Framework
- Class
- Deserialization
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Potential PHP Object Injection via unsafe input to unserialize() in Drupal database code, which can lead to Remote Code Execution only when chained with a separate vulnerability that supplies the malicious serialized data.
Why it matters to the business
Low direct risk to Drupal sites because the flaw is not exploitable on its own and no known core exploits exist; however, unpatched sites remain exposed to chained attacks that could result in full site takeover, data loss, or defacement, with urgency driven by the need to apply the December 2024 fixes across the large Drupal ecosystem.
How an attack unfolds
An attacker first locates a separate vulnerability in a Drupal installation or third-party module that allows controlled input to reach unserialize(), then supplies a crafted PHP object that triggers dangerous method calls or property assignments during deserialization, ultimately achieving remote code execution; the added database-layer checks in the fixed versions block common unsafe paths even if the secondary flaw exists.
How to fix it
Upgrade Drupal core to 7.102, 10.2.11, or 10.3.9 (or later) immediately; apply the database-layer hardening commit f2093af42504324a1f55ca1783eab5b8a93afaa0; review and update any third-party database drivers per their release notes for additional configuration requirements.
How to confirm the fix worked
Confirm the installed Drupal version is at or above the fixed releases; test that custom or third-party database drivers no longer accept unsafe serialized input by reviewing driver code and configuration; re-run any existing deserialization test cases or security scans that target unserialize() calls.
Typical attack path
- Scan for Drupal sites running versions before 7.102, 10.2.11, or 10.3.9
- Identify or exploit a secondary vulnerability that can pass attacker-controlled data to unserialize()
- Craft a serialized PHP object payload designed to execute arbitrary code or commands upon deserialization
- Trigger the deserialization path through the database driver or related code
- Establish persistence or perform post-exploitation actions on the compromised host
How to detect it
Review web server and application logs for unexpected serialized PHP objects reaching database-related code paths; inspect audit trails for any unserialize() calls with external or user-supplied data; check for post-exploitation artifacts such as newly created files or processes following deserialization events.
What your security team should do
- Apply the listed version upgrades within the next maintenance window
- Audit all third-party database drivers and modules for unsafe unserialize usage
- Monitor vulnerability disclosure feeds for any new chained exploits targeting Drupal deserialization
- Enable enhanced logging around database operations and deserialization functions for future detection
The record
Drupal core contains a potential PHP Object Injection vulnerability that (if combined with another exploit) could lead to Remote Code Execution. It is not directly exploitable. This issue is mitigated by the fact that in order for it to be exploitable, a separate vulnerability must be present to allow an attacker to pass unsafe input to `unserialize()`. There are no such known exploits in Drupal core. To help protect against this potential vulnerability, some additional checks have been added to Drupal core's database code. If you use a third-party database driver, check the release notes for additional configuration steps that may be required in certain cases. This issue affects Drupal Core: from 7.0 before 7.102, from 8.0.0 before 10.2.11, from 10.3.0 before 10.3.9.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Packagist | drupal/core | 10.3.0 | 10.3.9 |
| Packagist | drupal/core | 7.0 | 7.102 |
| Packagist | drupal/core | 8.0.0 | 10.2.11 |
| Packagist | drupal/core | 8.8.0 | 10.2.11 |
| Packagist | drupal/core-recommended | 10.3.0 | 10.3.9 |
| Packagist | drupal/core-recommended | 7.0 | 7.102 |
| Packagist | drupal/core-recommended | 8.8.0 | 10.2.11 |
| Packagist | drupal/drupal | 10.3.0 | 10.3.9 |
| Packagist | drupal/drupal | 7.0 | 7.102 |
| Packagist | drupal/drupal | 8.8.0 | 10.2.11 |
| Bitnami | drupal | 7.0.0 | 10.3.9 |
| Ubuntu:Pro:14.04:LTS | drupal7 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | drupal7 | 0 | No fix |
| packagist | drupal/core | 10.3.0 | 10.3.9 |
| packagist | drupal/core | 7.0 | 7.102 |
| packagist | drupal/core | 8.8.0 | 10.2.11 |
| packagist | drupal/core-recommended | 10.3.0 | 10.3.9 |
| packagist | drupal/core-recommended | 7.0 | 7.102 |
| packagist | drupal/core-recommended | 8.8.0 | 10.2.11 |
| packagist | drupal/drupal | 10.3.0 | 10.3.9 |
| packagist | drupal/drupal | 7.0 | 7.102 |
| packagist | drupal/drupal | 8.8.0 | 10.2.11 |
Related vulnerabilities
- GHSA-83v7-c2cf-p9c2 Drupal core allows Forceful Browsing Also affects drupal/core
- GHSA-h89p-5896-f4q8 Drupal core allows Content Spoofing Also affects drupal/core
- GHSA-mhpg-hpj5-73r2 Drupal core allows Exploiting Incorrectly Configured Access Control Security Levels Also affects drupal/core
- GHSA-m6vv-vcj8-w8m7 Drupal core allows Object Injection Also affects drupal/core
- CVE-2025-13081 Drupal core allows Object Injection Also affects drupal/core
- CVE-2025-13082 Drupal core allows Content Spoofing Also affects drupal/core
- CVE-2025-13083 Drupal core allows Exploiting Incorrectly Configured Access Control Security Levels Also affects drupal/core
- CVE-2025-13080 Drupal core allows Forceful Browsing Also affects drupal/core