CVE-2026-112243 is a Reflected Cross-Site Scripting vulnerability in the Duplicator WordPress migration and backup plugin before version 5.1.0. An unauthenticated attacker can place HTML in the logname query parameter and send the link to an Administrator who can access Duplicator Tools. When the log list is empty, opening the link can execute JavaScript in that administrator’s browser session. The supplied test reproduced the issue on version 5.0.6. The vulnerability is fixed in 5.1.0.

CVECVE-2026-112243
Plugin VersionDuplicator < 5.1.0, fixed in 5.1.0
All Time58 509 733
Active installations1 000 000+
Publicly PublishedNovember 2, 2026
Last UpdatedNovember 5, 2026
ResearcherDmitrii Ignatyev
CWECWE-79 Cross-Site Scripting
PoCYes
ExploitNo
Referencehttps://www.cve.org/CVERecord?id=CVE-2026-112243
https://www.wordfence.com/threat-intel/vulnerabilities/detail/duplicator-510-reflected-cross-site-scripting
https://wpscan.com/vulnerability/402cdca7-e775-4895-808a-f161a7899114/
Plugin Security Certification by CleanTalk
Logo of the pluginDuplicator plugin logo

Join the community of developers who prioritize security. Highlight your plugin in the WordPress catalog.

PSC by Cleantalk

Timeline

October 21, 2026Plugin testing and vulnerability detection in Duplicator were completed.
October 21, 2026The vulnerability report was sent with the PoC, description, and recommendations for remediation.
November 2, 2026The vulnerability was publicly disclosed as CVE-2026-112243.
November 4, 2026The public CVE-2026-112243 record was published.

Discovery of the Vulnerability

The affected page is the Logs tab under Duplicator Tools at /wp-admin/admin.php?page=duplicator-tools&tab=logs. In the 5.0.6 logs template, template/admin_pages/tools/duplicator_logs.php reads $_GET['logname'] at line 25. Lines 31-45 build an allowlist from the available log basenames, call validate_file(), and construct the selected log URL. At line 200, the page prints basename($logurl) directly into a div without HTML escaping.

The empty log list is the important precondition. WordPress Core validate_file() checks membership only when the supplied allowed-files array is nonempty. In the reported lab, the logs directory was absent and the plugin returned an empty list. The crafted value therefore survived this check and selected the log-display branch because it was nonempty. basename() extracts a path component but leaves the HTML payload executable when it is printed without esc_html().

Understanding of Reflected Cross-Site Scripting attacks

Reflected Cross-Site Scripting occurs when data supplied in a request is returned as executable page markup. Here, PHP decodes the logname query value, and the logs screen places the resulting image tag in its response. The injected onerror handler executes when the browser fails to load the image.

An attacker can construct the link without a WordPress account. Exploitation requires an authenticated Administrator to open it and have permission to access Duplicator Tools on a site with the affected configuration. The script then runs in the site origin within that browser session. This can expose information available to the victim and permit administrative requests within that account’s capabilities.

Exploiting the Reflected Cross-Site Scripting Vulnerability

The supplied PoC uses an alert to demonstrate script execution on a test installation. The attacker sends a crafted link to the administrator. Opening the link triggers the payload when the empty log-list condition is present.

POC:

POC:
Attacker - unauthenticated
Victim - Administrator with access to Duplicator Tools
Tested version - Duplicator 5.0.6
Required configuration - logs directory unavailable and log list empty

1. Use a WordPress test installation matching the configuration above.
2. Sign in as an Administrator who can open the Duplicator Tools page.
3. Prepend the test site origin to this path and open it in that browser session.

/wp-admin/admin.php?page=duplicator-tools&tab=logs&logname=%3Cimg+src%3Dx+onerror%3Dalert%28document.domain%29%3E

4. Observe alert(document.domain) displaying the test site domain.
5. Inspect the HTTP 200 response and confirm that the supplied image tag is reflected as raw HTML.

____

In the supplied lab result, the response returned HTTP 200 and contained the marker as raw HTML. Chrome displayed alert(document.domain) with 89.169.32.165. These observations demonstrate reflected script execution in the administrator browser under the reported configuration.

Recommendations for Improved Security

Update Duplicator to 5.1.0 or a newer patched release. The advisory also identifies Duplicator Pro before 5.1.0 as affected, so sites using that package should install its patched release. Administrators should treat unexpected links to plugin administration pages with caution, especially while an affected version remains installed.

Developers should require the selected log name to match an actual allowed entry and handle an empty log list explicitly. Escape the displayed name with esc_html() at the output boundary. The 5.1.0 logs template applies esc_html($logSelected) to the displayed value. Dynamic attributes and URLs also need escaping for their respective contexts, alongside capability checks on the administrative screen.

Addressing CVE-2026-112243 keeps a requested log name from becoming executable markup in an administrator browser. Explicit handling of an empty log list and correct output escaping protect this part of the backup workflow.

#WordPressSecurity #ReflectedXSS #Duplicator #PluginSecurity #WebsiteSafety #StayProtected

Use CleanTalk solutions to improve the security of your website.

CVE-2026-112243 - Duplicator - Unauth Reflected XSS - POC

Dmitrii I

Pentester with 5 years of hands-on experience securing WordPress and web applications, holding OSWE, OSEP, OSCP, and OSWP certifications. Author of 450 published CVEs, including 35 disclosed within the last month. Specializes in discovering and validating high-impact vulnerabilities in WordPress plugins/themes / Custom WEB applications and delivering actionable remediation guidance to harden production sites.

See all posts by dmitrii-ignatyev

Leave a Reply

Your email address will not be published. Required fields are marked *