Duplicator has unauthenticated PHP object injection (CVE-2026-82814)
Builds through 1.5.17 and Pro 4.6.10 are fixed in 5.0.0; old packages keep the installer that created them.
PHP object injection in Duplicator during migration
Duplicator and Duplicator Pro deserialize untrusted database content in DUPX_UpdateEngine::unserializeTest() during WordPress migration. An unauthenticated attacker can store a serialized object in public site content; an administrator must later build a package and run a migration or import. Free through 1.5.17 can run OS commands via a Requests POP chain. Pro through 4.6.10 can delete a chosen file; removing wp-config.php can enable site takeover.
What to do: Apply the vendor updates for CVE-2026-82814. Fixed versions are not listed, and no workaround is named.
| Product | Affected |
|---|---|
| Duplicator | all versions up to, and including, 1.5.17 |
| Duplicator Pro | all versions up to, and including, 4.6.10 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
The Duplicator and Duplicator Pro plugins for WordPress are vulnerable to PHP Object Injection in all versions up to, and including, 1.5.17 and 4.6.10, respectively, via deserialization of untrusted database content in DUPX_UpdateEngine::unserializeTest() during migration. This allows unauthenticated attackers to store a serialized object in public site content before an administrator builds a package and later performs a migration or import that runs database search-and-replace. Duplicator Free bundles a Requests 1.7 POP chain that permits attacker-selected callbacks, resulting in direct operating-system command execution. Duplicator Pro bundles an IndexList destructor gadget that permits deletion of an attacker-selected existing file when its containing directory is writable by the installer PHP process; deletion of wp-config.php can expose the setup wizard and lead to site takeover and code execution if the attacker reaches it first and supplies a reachable database they control. The package must be created after the carrier is stored, and a later administrator migration action is required.
Builds through 1.5.17 and Pro 4.6.10 are fixed in 5.0.0; old packages keep the installer that created them.
Today 2.2K readers · 2.7K views · 401 reads · all time 108K views