Home/Security Research

CVE-2026-10749

HIGH — CVSS 7.2

PHP Object Injection in WordPress Post Duplicator Plugin

PluginPost Duplicator
Affected≤ 3.0.14
Fixed in3.0.15
VulnerabilityPHP Object Injection (CWE-502)
CVSS Score7.2 High
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Discovered byMd Minaruzzaman Shovon
DisclosedJune 2026

Summary

A PHP Object Injection vulnerability exists in the WordPress Post Duplicatorplugin in versions up to and including 3.0.14. The plugin passes unsanitized user-controlled input to PHP's unserialize() function via the customMetaData parameter during the post duplication process.

An authenticated attacker with at least Contributor-level access can craft a malicious serialized payload. When deserialized, this instantiates arbitrary PHP objects. If a suitable gadget chain is present in the WordPress environment, this can escalate to Remote Code Execution, arbitrary file deletion, or Server-Side Request Forgery.

Technical Details

Post Duplicator copies post content including custom meta fields. The plugin reads the customMetaData parameter from the duplication request and calls unserialize() on it without first validating or sanitizing the input.

PHP Object Injection via unserialize() allows an attacker to control the class and properties of the resulting object. The real-world severity depends on available PHP classes (gadget chains) in the application context — common WordPress plugins and themes frequently introduce gadgets that make exploitation straightforward.

Attack vector: Authenticated network request with a crafted serialized string in the customMetaData parameter. Requires Contributor role or higher.

Impact

Depending on the gadget chains available in the target WordPress installation:

  • Remote Code Execution (RCE) via a PHP file write gadget
  • Arbitrary file deletion leading to site takeover or denial of service
  • Server-Side Request Forgery (SSRF) for internal network reconnaissance
  • Privilege escalation through object manipulation

Remediation

Update Post Duplicator to version 3.0.15 or later. The patched version replaces the unsafe unserialize() call with a safe alternative that does not instantiate arbitrary PHP objects.

If an immediate update is not possible, restrict Contributor-level access or disable the Post Duplicator plugin until the patch can be applied.

Timeline

Jun 2026Vulnerability discovered during code review
Jun 2026Reported to WPScan / plugin author via responsible disclosure
Jun 2026CVE-2026-10749 assigned — patch released in 3.0.15
Jun 2026Public disclosure

References

Researcher

Discovered and responsibly disclosed by Md Minaruzzaman Shovon, full-stack developer and security researcher based in Bangladesh. Verified on Patchstack.