CVE-2024-55637
NoneCVSS
—
EPSS
0.8%
Published
Dec 10, 2024
CISA due date
—
Cloudanix analysis
A flaw in older versions of Drupal could let attackers run harmful code on a website if they already have another way to sneak bad data into the system, so sites should update to newer versions to stay protected.
- Exploitation
- Other
- Attacker needs
- Low Privilege
- Complexity
- High
- Impact
- Full Compromise
- Component
- Web Framework
- Class
- Deserialization
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The vulnerability adds a potential PHP Object Injection vector in Drupal core classes by allowing unsafe input to reach unserialize() when a separate flaw is present, which could enable object instantiation and property manipulation leading to Remote Code Execution if further chained.
Why it matters to the business
Organizations running older Drupal versions face elevated risk of full site compromise only if another unrelated vulnerability exists to supply malicious serialized data; the low EPSS score and absence from KEV indicate limited standalone threat but require prompt patching to eliminate the deserialization exposure across affected 8.x through 11.x releases.
How an attack unfolds
An attacker must first identify and exploit a separate input-handling flaw in a Drupal site or extension to pass attacker-controlled serialized PHP objects into unserialize() calls on core classes; once that vector exists, the injected objects can trigger gadget chains for code execution, though no such chaining exploits are known in core itself.
How to fix it
Upgrade Drupal core to 10.2.11 or later, 10.3.9 or later, or 11.0.8 or later; apply the type-hinting changes from commit 3712d59414f556474f990a503c3f7c295f8c719f to any custom subclasses of affected core classes; ensure all extensions also enforce strict types on properties.
How to confirm the fix worked
Verify installed Drupal version is at or above the fixed releases; inspect custom class extensions for addition of type declarations matching the core changes; run static analysis or unit tests that attempt unserialize() with unsafe input to confirm TypeError enforcement.
Typical attack path
- Locate or introduce a secondary vulnerability allowing arbitrary input to a Drupal unserialize() call
- Craft a serialized payload targeting typed properties in core classes that lack strict type enforcement in subclasses
- Deliver the payload to trigger object injection and property manipulation
- Leverage resulting gadget chain for remote code execution if mitigation types are absent
How to detect it
Search web server and application logs for unexpected serialized PHP object strings reaching unserialize() functions; review access logs around the publication date for anomalous POST or query parameters containing serialized data; check for any post-exploitation artifacts such as unexpected file writes or process spawns following deserialization events.
What your security team should do
- Immediately upgrade all Drupal instances to the fixed versions listed in remediation guidance
- Audit custom code extending core classes for missing type hints and add them to prevent TypeError bypasses
- Review application logs and input paths for any prior unserialize() usage that could have accepted external data
- Monitor EPSS trend and re-assess after 30 days given the modest upward movement
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, types have been added to properties in some of Drupal core's classes. If an application extends those classes, the same types may need to be specified on the subclass to avoid a `TypeError`. This issue affects Drupal Core: from 8.0.0 before 10.2.11, from 10.3.0 before 10.3.9, from 11.0.0 before 11.0.8.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Packagist | drupal/core | 10.3.0 | 10.3.9 |
| Packagist | drupal/core | 11.0.0 | 11.0.8 |
| 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 | 11.0.0 | 11.0.8 |
| Packagist | drupal/core-recommended | 8.8.0 | 10.2.11 |
| Packagist | drupal/drupal | 10.3.0 | 10.3.9 |
| Packagist | drupal/drupal | 11.0.0 | 11.0.8 |
| Packagist | drupal/drupal | 8.8.0 | 10.2.11 |
| Bitnami | drupal | 8.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 | 11.0.0 | 11.0.8 |
| packagist | drupal/core | 8.8.0 | 10.2.11 |
| packagist | drupal/core-recommended | 10.3.0 | 10.3.9 |
| packagist | drupal/core-recommended | 11.0.0 | 11.0.8 |
| packagist | drupal/core-recommended | 8.8.0 | 10.2.11 |
| packagist | drupal/drupal | 10.3.0 | 10.3.9 |
| packagist | drupal/drupal | 11.0.0 | 11.0.8 |
| 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