CVE-2020-29047

WP Hotel Booking <= 1.10.3 - Remote Code Execution

2020-12-08 00:00
Nick Blundell

Strategic Overview

Status
Patched in 1.10.4
Affected Plugin
WP Hotel Booking
Affected Version
<= 1.10.3
CVSS
9.8Critical
Weakness type
CWE-502 · Deserialization of Untrusted Data
CVE
CVE-2020-29047
View all WP Hotel Booking vulnerabilities

At a glance

CVE-2020-29047 is a critical-severity Deserialization of Untrusted Data vulnerability in the WP Hotel Booking WordPress plugin, affecting versions <= 1.10.3. 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 1.10.4; sites on affected versions should update now. Disclosed December 2020, reported by Nick Blundell.

Vulnerability Overview

The wp-hotel-booking plugin through 1.10.3 for WordPress allows remote attackers to execute arbitrary code because of an unserialize operation on the thimpress_hotel_booking_1 cookie in load in includes/class-wphb-sessions.php. This was finally patched in 1.10.04

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 WP Hotel Booking <= 1.10.3 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 WP Hotel Booking the fix is 1.10.4: builds <= 1.10.3 are affected, anything from 1.10.4 onward is not.

Remediation

Update to version 1.10.4, or a newer patched version

How does WordSec protect against this?

The attempt arrives as an ordinary request to WP Hotel Booking: 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: WP Hotel Booking 1.10.4 closes this, and updating the plugin is the step that ends it.

  • Firewall
  • Scanner
  • Alerts

External References

Related records

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