Cloudanix VulnDB

CVE-2024-55637

None

CVSS

—

EPSS

0.8%

Published

Dec 10, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

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.

Chainable
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

  1. Locate or introduce a secondary vulnerability allowing arbitrary input to a Drupal unserialize() call
  2. Craft a serialized payload targeting typed properties in core classes that lack strict type enforcement in subclasses
  3. Deliver the payload to trigger object injection and property manipulation
  4. 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