Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted comment via wp-comments-post.php
-
DeliveryStore base64 serialized POP object in wp_comments
-
ExploitAdministrator runs routine Prime Mover export/restore
-
Executionunserialize() triggers Freemius FS_Clone_Manager gadget chain
-
ImpactArbitrary option write / site compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The storage half requires no special conditions: an unauthenticated attacker uses the default wp-comments-post.php comment endpoint, and the payload lands in wp_comments.comment_content regardless of comment moderation status. The trigger half is the key limiting factor: unserialize() only executes when an administrator subsequently runs a Prime Mover export or restore operation, so a site that never uses these migration features is not exercised. The gadget is self-contained - the plugin bundles the vulnerable Freemius library - so no additional plugin or theme is required. Applies to all versions up to and including 2.2.1; the unserialize() call has no allowed_classes restriction. |
| Impact | Multiple signals converge on genuine priority. CVSS 3.1 is 9.8 (AV:N/AC:L/PR:N/UI:N) and the vuln.today Decision label is act_now, both indicating a severe, remotely reachable flaw; Wordfence (the original reporter) classifies it as an unauthenticated PHP Object Injection with a self-contained POP chain, which is the highest-concern variant because no second plugin/theme is needed to weaponize it. The CWE-502 sink and the Freemius gadget chain are corroborated by direct source-code references on plugins.trac.wordpress.org, so the mechanism is well evidenced rather than merely asserted. One important nuance tempers the raw 9.8: the CVSS vector scores UI:N, but exploitation is a two-stage, deferred-trigger attack - the attacker stores the payload unauthenticated, yet unserialize() only fires when an administrator later runs a routine Prime Mover export or restore. That admin-side action is outside attacker control and is not reflected in the UI:N scoring, so real-world exploitation depends on a victim operating the backup feature. No EPSS score is provided, so widespread-exploitation probability cannot be quantified from this data, and the CVE is not listed in CISA KEV, so there is no confirmed active exploitation despite the critical score. Net: treat as high priority for any site running the plugin that uses its export/restore functions, while recognizing exploitation is contingent on the deferred admin trigger. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a comment through the standard wp-comments-post.php endpoint whose content is a base64-encoded serialized PHP object; the value is stored in wp_comments.comment_content even before moderation. Later, when a site administrator performs a normal Prime Mover export or restore, recursiveUnserializeReplace() base64-decodes the stored value and calls unserialize() with no allowed_classes restriction, instantiating the bundled Freemius FS_Clone_Manager POP chain (__set → set_option → store → update_option) to write arbitrary WordPress options, which can lead to full compromise. No public exploit code is identified in the provided data, though the vendor references pinpoint the exact sink and gadget lines. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 24, 2026
Unauthenticated PHP object injection in the Prime Mover - Backup and Migration plugin for WordPress (all versions up to and including 2.2.1) allows an attacker to plant a base64-encoded serialized object in wp_comments.comment_content through the stock wp-comments-post.php endpoint, with no authentication and no user interaction required. The payload is only deserialized when an administrator later runs a Prime Mover export or restore, at which point recursiveUnserializeReplace() passes the attacker-controlled value to unserialize() without an allowed_classes restriction; the plugin additionally ships its own gadget chain inside the bundled Freemius library (FS_Clone_Manager::__set → FS_Option_Manager::set_option → store() → update_option()), so no third-party plugin or theme is needed. The two-stage nature means the storage half is always reachable on a site with comments enabled while the trigger half depends on an administrator using the migration features; impact on successful trigger is full confidentiality, integrity and availability loss. Priority is act_now per the current decision signals; no public exploit code has been identified at time of analysis.
RemediationAI
No vendor-released patched version is identified in the available data at time of analysis; the affected range extends through 2.2.1, so administrators should monitor the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/ab6ebd66-c7a4-402e-b51e-3f1f3183bd97?source=cve) and the plugin's WordPress.org page for a release above 2.2.1, and upgrade as soon as one is published. Until then, the practical mitigations target the two halves of the attack chain. To close the storage path, disable comments site-wide or block unauthenticated POSTs to wp-comments-post.php at the web server or WAF, accepting the loss of reader engagement and the need to review any legitimate comment workflows. To avoid the trigger, do not run Prime Mover export or restore operations on a site where comments are open to untrusted users until a fix is installed, deferring or performing migrations from a staging copy instead. Because the gadget chain ships inside the plugin's vendored Freemius library, which the plugin depends on at runtime, deleting or hand-patching the vendor directory is not a supported workaround and would break plugin functionality and future updates.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Prime Mover is a WordPress backup and migration plugin by Codexonics that ships a vendored copy of the Freemius SDK. Its search-and-replace routine, PrimeMoverSearchReplace.php (referenced lines 391, 422, 899 and 1281 in tag 2.2.1), base64-decodes stored values and recursively unserializes them while walking comment data, with no allowed_classes whitelist - the classic CWE-502 unsafe deserialization pattern. Because comment_content is attacker-writable via wp-comments-post.php and is persisted irrespective of moderation state, the serialized payload survives until an export or restore operation reads it. The gadget chain is not hypothetical: FS_Clone_Manager::__set (class-fs-clone-manager.php:1636) is a magic setter that reaches FS_Option_Manager::set_option and its store() method (class-fs-option-manager.php:414), which ultimately calls update_option() - a write primitive an attacker can steer toward arbitrary option manipulation. That the gadget lives in the plugin's own vendor tree removes the usual dependency on a separately installed vulnerable extension, widening the population of exploitable sites. Exploitation is gated by the administrative trigger: sites that never run a Prime Mover export or restore never execute the vulnerable unserialize() path.
Know when PHP gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Payload is stored remotely and unauthenticated via the default comment endpoint (AV:N/PR:N/AC:L); deserialization to arbitrary option write yields full C/I/A impact, so 9.8 despite the deferred admin-side trigger.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Prime Mover - Backup and Migration plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 2.2.1 via deserialization of untrusted input in the migration search-and-replace routine (recursiveUnserializeReplace()). An unauthenticated attacker can store a crafted, base64-encoded serialized object in wp_comments.comment_content through the standard comment-submission endpoint (wp-comments-post.php). When an administrator subsequently performs a routine Prime Mover export or restore, the plugin base64-decodes that stored value and passes it to unserialize() with no allowed_classes restriction. A Property-Oriented Programming (POP) chain is present in the plugin's own bundled Freemius library (FS_Clone_Manager::__set → FS_Option_Manager::set_option → store() → update_option()), so no additional plugin or theme is required - the plugin ships the gadget itself.
Articles & Coverage 1
Executive ViewAI
A critical vulnerability in the Prime Mover WordPress plugin (versions up to 2.2.1) allows unauthenticated attackers to plant malicious objects that execute when an administrator performs an export or restore. This two-stage attack could lead to full site compromise, data theft, or ransomware, affecting any organization using this plugin for backups-especially those with public-facing comment sections.
No vendor-released patch identified at time of analysis. Interim mitigations: disable or remove the Prime Mover plugin, disable WordPress comments, restrict administrator access to trusted IPs, and deploy WAF rules to block serialized payloads in comment fields.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-109213
GHSA-g589-p4qg-x28q
NVD
CVE.org
EPSS
Exploit-DB