CVE-2020-28032

WordPress Core < 5.5.2 - Deserialization Gadget

2020-10-29 00:00
Alex Concha

Strategic Overview

Status
Patched in 3.7.35
Affected Core
WordPress 5.5
Affected Version
3.7 – 5.5.1 · 20 branches
CVSS
8.8High
Weakness type
CWE-502 · Deserialization of Untrusted Data
CVE
CVE-2020-28032
View all WordPress 5.5 vulnerabilities

At a glance

CVE-2020-28032 is a high-severity Deserialization of Untrusted Data vulnerability in the WordPress 5.5 WordPress release line, affecting 3.7 – 5.5.1 · 20 branches. It carries a CVSS score of 8.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). The issue is fixed in version 3.7.35; sites on affected versions should update now. Disclosed October 2020, reported by Alex Concha.

Vulnerability Overview

WordPress before 5.5.2 mishandles deserialization requests in wp-includes/Requests/Utility/FilteredIterator.php.

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 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 5.5 3.7 – 5.5.1 · 20 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 5.5 the fix is 3.7.35: builds 3.7 – 5.5.1 · 20 branches are affected, anything from 3.7.35 onward is not.

Remediation

Update to one of the following versions, or a newer patched version: 3.7.35, 3.8.35, 3.9.33, 4.0.32, 4.1.32, 4.2.29, 4.3.25, 4.4.24, 4.5.23, 4.6.20, 4.7.19, 4.8.15, 4.9.16, 5.0.11, 5.1.7, 5.2.8, 5.3.5, 5.4.3, 5.5.2

How does WordSec protect against this?

The attempt arrives as an ordinary request to WordPress 5.5: 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 3.7.35 is the step that ends it.

  • Firewall
  • Scanner
  • Alerts

External References

Related records

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