Fancy Product Designer CVE-2025-13231
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSet up attacker-controlled server
-
DeliverySubmit URL to fpd_custom_uplod_file AJAX action
-
ExploitServe valid image to pass getimagesize()
-
ExecutionSwitch response/redirect during file_get_contents()
-
ImpactServer fetches internal resource
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Remote and unauthenticated (PR:N, UI:N) against default installations of the Fancy Product Designer WordPress plugin at versions ≤6.4.8, reachable via the 'fpd_custom_uplod_file' AJAX action. The concrete prerequisite is that the attacker must control a web server capable of serving differential responses - a valid image during the getimagesize() validation phase and then a changed response or redirect during the file_get_contents() fetch phase. The practical limiting factor is winning this TOCTOU timing window between the two server-side fetches; because the attacker controls both responses this is largely reliable, but it is not a single-shot payload. Impact is constrained to SSRF (reaching internal/external URLs), not code execution. |
| Impact | This is a moderate-priority SSRF (CVSS 6.5) rather than a critical emergency. The CVSS vector (AV:N/AC:L/PR:N/UI:N) signals a network-reachable, unauthenticated flaw with no user interaction, which raises its baseline concern because any visitor can reach the vulnerable 'fpd_custom_uplod_file' AJAX action. However, the real-world risk is tempered by the exploitation mechanism: as a CWE-362 TOCTOU race condition, success depends on the attacker operating a malicious server that returns a valid image to getimagesize() and then a different/redirecting response to the subsequent file_get_contents() call - a conditional-but-controllable window. Impact is bounded (C:L/I:L/A:N): SSRF here yields limited internal reachability, not direct RCE or full data disclosure. No EPSS score, KEV listing, or POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Note a tension worth flagging: the provided vector uses AC:L, but a race-condition root cause (CWE-362) typically warrants AC:H - the attacker's control over both server responses makes the race largely winnable, so AC:L is defensible but borderline; verify against the Wordfence advisory. Net: patch in normal cadence; it is not a high-CVSS-but-meaningless issue, but neither is it a drop-everything item absent exploitation signals. |
| Exploit ScenarioDerived | An unauthenticated attacker hosts a web server under their control and submits its URL to the plugin's fpd_custom_uplod_file AJAX endpoint; the server returns a valid image so the getimagesize() validation passes, then on the follow-up file_get_contents() fetch it returns a redirect to an internal resource (e.g., a cloud metadata endpoint or an internal-only service). This lets the attacker coerce the WordPress server into making requests to otherwise unreachable internal or external URLs. No public exploit was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Server-side request forgery in the Fancy Product Designer plugin for WordPress (all versions through 6.4.8) lets unauthenticated remote attackers make the hosting server fetch attacker-chosen internal or external URLs through the fpd_custom_uplod_file AJAX action. The flaw is a time-of-check/time-of-use race condition: the plugin validates the attacker-supplied 'url' parameter with getimagesize() and then re-fetches the same URL with file_get_contents(), so an attacker who controls the responding server can answer the validation request with a legitimate image and then switch to a redirect toward an internal address before the real fetch. Impact is bounded to SSRF on WordPress installations running the affected plugin - independent assessment confirms no code execution, no authentication bypass, and no public exploit identified at time of analysis - and the attacker must control a differential-response server and win the timing window, making this a moderate-priority (CVSS 6.5) issue rather than an emergency.
RemediationAI
No vendor-released patched version is identified in the available data, so confirm fix status against the vendor discussion (https://support.fancyproductdesigner.com/support/discussions/topics/13000036024) and the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/c56ec6ae-5b75-4cbb-aedd-f318fddc7bf0?source=cve) before assuming an update exists. The most reliable immediate step is to deactivate the Fancy Product Designer plugin until a fixed release is published, at the cost of removing the storefront's product-designer and custom-upload functionality - a reasonable trade for a CVSS 6.5 SSRF on a public-facing site. If the plugin must stay online, restrict access to the fpd_custom_uplod_file AJAX action at the web server or WAF layer by blocking POSTs to /wp-admin/admin-ajax.php with that action parameter, recognizing that WAF pattern matching can be bypassed with parameter encoding or case variation in the action name. Additionally, apply outbound egress filtering from the WordPress host so PHP cannot reach loopback, RFC1918 ranges, or the link-local metadata address 169.254.169.254; the trade-off is that plugins or themes that legitimately import remote assets - including Fancy Product Designer fetching external design assets - may break, so allowlist the specific remote hosts the storefront actually needs. Where egress must traverse a proxy, route WordPress HTTP traffic through it using the WP_HTTP proxy constants so legitimate and malicious fetches are both logged and controlled. Monitor the vendor support topic for a patched release and upgrade as soon as one is available.
Affected ProductsAI
The Fancy Product Designer plugin for WordPress, all versions up to and including 6.4.8, on any WordPress site where the plugin's unauthenticated AJAX endpoint is exposed. No CPE identifiers were supplied in the source data, so scoping rests on plugin name and version rather than a machine-readable CPE match. Both NVD references support this scope: the vendor's support discussion at https://support.fancyproductdesigner.com/support/discussions/topics/13000036024 and the Wordfence threat-intel advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/c56ec6ae-5b75-4cbb-aedd-f318fddc7bf0?source=cve. Because the description covers all versions up to and including 6.4.8, any installation running 6.4.8 or earlier without the endpoint disabled should be treated as affected.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Fancy Product Designer registers a WordPress AJAX action named fpd_custom_uplod_file (the typo is in the action name) that accepts a remote image URL in a 'url' parameter and causes the WordPress server itself to make outbound HTTP requests on behalf of the caller. The CVSS vector carries PR:N and UI:N, so the action is reachable without authentication and without user interaction on default installations. The root cause is a classic time-of-check/time-of-use race mapped to CWE-362: the code first validates the supplied URL using PHP's getimagesize(), which downloads the resource, and later retrieves the same resource a second time using file_get_contents(). Because the two requests are separate server-side fetches of an attacker-controlled URL, the attacker's server can respond with a valid image during validation and then with a redirect (or different content) during the actual fetch, steering the second request to loopback addresses, RFC1918 ranges, cloud metadata endpoints such as 169.254.169.254, or administrative services only reachable from the WordPress host. The practical limiting factor is the requirement to control the responding server and land the timing gap between the two fetches; because the attacker owns both responses this is a reliably repeatable attack rather than a single-shot payload, but the weakness remains confined to SSRF - no code execution, credential theft beyond what the target endpoint exposes, or filesystem access. No CPE strings were provided in the source data, though the affected code path is the plugin's own AJAX handler rather than a WordPress core component.
Know when WordPress gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Network-reachable and unauthenticated (AV:N/PR:N), but the CWE-362 race between getimagesize() and file_get_contents() makes success timing-dependent, so AC:H; SSRF yields limited C/I only.
Primary rating from Vendor (wordfence).
CVSS VectorVendor: wordfence
DescriptionCVE.org
The Fancy Product Designer plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 6.4.8. This is due to a time-of-check/time-of-use (TOCTOU) race condition in the 'url' parameter of the fpd_custom_uplod_file AJAX action. The plugin validates the URL by calling getimagesize() first, then later retrieves the same URL using file_get_contents(). This makes it possible for unauthenticated attackers to exploit the timing gap to perform SSRF attacks by serving a valid image during validation, then changing the response to redirect to arbitrary internal or external URLs during the actual fetch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
The mailSend function in the isMail transport in PHPMailer before 5.2.18 might allow remote attackers to pass extra para
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
Remote code execution in WordPress 6.9.x (before 6.9.5) and 7.0.x (before 7.0.2) arises from a REST API batch endpoint r
NVD
CVE.org
EPSS
GitHub PoC
Exploit-DB