CVE-2024-31211

WordPress Core 6.4.0 - 6.4.1 - Remote Code Execution POP Chain

2023-12-06 00:00
Anonymous

Strategic Overview

Status
Patched in 6.4.2
Affected Core
WordPress 6.4
Affected Version
6.4.0 – 6.4.1 · 2 branches
CVSS
9.8Critical
Weakness type
CWE-502 · Deserialization of Untrusted Data
CVE
CVE-2024-31211
View all WordPress 6.4 vulnerabilities

At a glance

CVE-2024-31211 is a critical-severity Deserialization of Untrusted Data vulnerability in the WordPress 6.4 WordPress release line, affecting 6.4.0 – 6.4.1 · 2 branches. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 6.4.2; sites on affected versions should update now. Disclosed December 2023.

Vulnerability Overview

WordPress Core is vulnerable to remote code execution via a PHP gadget in version 6.4.0 and 6.4.1. This is due to there being a magic method __destruct in the WP_HTML_Token class. This makes it possible for attackers to achieve remote code execution when another deserialization/PHP Object Injection vulnerability is present on the site.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.

CWE-502: Deserialization of Untrusted Data

Reaching this weakness in WordPress 6.4 6.4.0 – 6.4.1 · 2 branches takes a caller who can reach the endpoint. Deserialization of untrusted data means the application reconstructs objects from input a caller controls, letting the attacker choose which classes get instantiated and what their properties hold.

A workable chain turns deserialization into file writes, deletions or code execution, depending on what the loaded classes do in their magic methods. For WordPress 6.4 the fix is 6.4.2: builds 6.4.0 – 6.4.1 · 2 branches are affected, anything from 6.4.2 onward is not.

Remediation

Update to version 6.4.2, or a newer patched version

How does WordSec protect against this?

The attempt arrives as an ordinary request to WordPress 6.4: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. None of that substitutes for the fix: updating to 6.4.2 is the step that ends it.

  • Firewall
  • Scanner
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C