Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconRegister free subscriber account
-
DeliveryPOST crafted file URL via account form
-
ExploitBypass validate_file() (no literal ../)
-
InstallInvoke upload_file_remove() AJAX action
-
C2uwp_get_file_relative_url() collapses tokens into traversal path
-
Executewp_delete_file() removes arbitrary server file
-
ImpactWordPress site destroyed or destabilized
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The target site must have the UsersWP plugin installed and active at version 1.2.70 or earlier. Exploitation requires an authenticated WordPress account with at minimum Subscriber-level access; on sites using UsersWP for membership or community functionality - its primary use case - open public registration is the default, allowing an attacker to self-provision a qualifying account. The WordPress AJAX endpoint (wp-admin/admin-ajax.php) handling upload_file_remove must be network-reachable, which is standard for any public-facing WordPress installation. No non-default plugin configuration or special deployment mode is required beyond the plugin being active. Exploitation is limited to file deletion (no read or overwrite); the attacker must specify the relative target path, though well-known WordPress paths such as wp-config.php are trivially guessable. The theoretical confidentiality boundary of C:N in the CVSS vector may not fully account for wp-config.php exposure during the deletion window. |
| Impact | The CVSS 8.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H) is well-supported by the vulnerability mechanics. Attack complexity is genuinely low once the crafted token format is understood, and Subscriber-level registration is typically open to the public on membership and community sites - the primary deployment context for UsersWP - making the effective privilege barrier minimal in practice. The C:N metric may technically understate real-world impact: deleting wp-config.php exposes database credentials in plaintext to any co-located process that reads the file before deletion, introducing a secondary confidentiality dimension not captured by the vector. EPSS data is absent from the input and cannot be assessed. No KEV listing or confirmed POC exists at time of analysis, but the Wordfence advisory's direct source-code references to class-forms.php:2432, misc.php:2107, and class-validation.php:194 provide sufficient technical specificity to accelerate exploit development. The fix exists in SVN trunk (changeset 3650759) but no tagged release version is independently confirmable, meaning sites relying on the WordPress.org auto-update channel may not yet be patched. |
| Exploit ScenarioDerived | An attacker self-registers a free Subscriber account on a WordPress membership site running UsersWP ≤ 1.2.70 - a common configuration for community portals. They submit a crafted account 'file' field containing the uploads base URL embedded within a token (e.g., 'http://example.com/wp-content/uploads..http://example.com/wp-content/uploads/../../wp-config.php'), which passes the validate_file() check because no literal '../' is present. On a subsequent AJAX call to upload_file_remove(), uwp_get_file_relative_url() collapses the embedded token into a directory traversal sequence, and wp_delete_file() removes wp-config.php from the server, taking the WordPress site offline. No confirmed public POC exists at time of analysis, though the Wordfence source-level write-up provides sufficient detail to reconstruct the technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 11, 2026
Arbitrary file deletion in UsersWP ≤ 1.2.70 for WordPress allows authenticated Subscriber-level users to delete any file on the server - including wp-config.php - via a path traversal bypass in the upload_file_remove() AJAX handler. The exploit exploits a two-phase validation failure: validate_file() only rejects literal '../' sequences, but the uwp_get_file_relative_url() helper later performs a global str_replace() that collapses crafted embedded tokens into directory traversal sequences after the final validation gate, with the result passed directly to wp_delete_file() without canonical containment. No public exploit code or CISA KEV listing is confirmed at time of analysis; however, the low privilege requirement and precise Wordfence source-level write-up substantially reduce the research barrier for threat actors.
RemediationAI
Upgrade UsersWP to the first release published after SVN trunk changeset 3650759 (https://plugins.trac.wordpress.org/changeset?new=3650759%40userswp%2Ftrunk&old=3618724%40userswp%2Ftrunk); the specific version number of the patched release is not independently confirmed from the available data, so administrators should check the WordPress plugin repository for the current stable version above 1.2.70 and apply it immediately. As an interim compensating control, site administrators can add a WAF or Nginx/Apache rule blocking POST requests to wp-admin/admin-ajax.php where the 'action' parameter equals 'uwp_upload_file_remove'. Alternatively, if open user registration is not required by the site's use case, disabling Subscriber-level self-registration raises the effective exploitation bar from unauthenticated to requiring an existing account. Note that disabling registration may break core plugin functionality. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/dfa094d3-e8db-4402-ad23-e161b1b6181e for confirmed patched version details.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
UsersWP (CPE: cpe:2.3:a:stiofansisland:userswp_-_front-end_login_form,_user_registration,_user_profile_&_members_directory_plugin_for_wp:*:*:*:*:*:*:*:*) is a WordPress plugin providing front-end user registration, login, and profile management. The root cause is CWE-22 (Path Traversal) arising from a split-validation design flaw across two code paths. In process_account() (class-forms.php:2076), the account 'file' form field is taken directly from $_POST when no real $_FILES upload is present; uwp_validate_fields() and an array_merge with the empty result of UsersWP_Files::validate_uploads() store the raw value, gated only by validate_file() at class-validation.php:194, which permits any string lacking a literal '../'. When upload_file_remove() (class-forms.php:2432) later processes the stored value, it calls uwp_get_file_relative_url() (misc.php:2107), which performs a global str_replace() of the uploads base URL. An attacker-crafted value embedding the uploads base URL within a token - such as '/uploads..<base-url>/..' - survives the validate_file() check but collapses into '../../' after substitution. The resulting traversed path is then appended to the uploads base directory and passed to wp_delete_file() without any realpath() or wp_normalize_path()-based containment check.
Know when Userswp Front End Login Form User Registration User Profile Members Directory Plugin For Wp 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:L/UI:N/S:U/C:N/I:H/A:H
Network AJAX endpoint, low complexity once token format known, Subscriber PR:L; deletion-only impact means C:N, but I:H and A:H for wp-config.php destruction.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The UsersWP plugin for WordPress is vulnerable to Arbitrary File Deletion in versions up to, and including, 1.2.70 via the upload_file_remove() AJAX handler. The plugin stores the value of an account 'file' form field taken directly from $_POST when no real $_FILES upload is provided (process_account() calls uwp_validate_fields() and array_merges the result with the empty output of UsersWP_Files::validate_uploads()). At storage time the value is only checked with validate_file(), which passes any string that does not contain a literal '../'. When the value is later processed by upload_file_remove(), it is again gated with validate_file() and then normalized through uwp_get_file_relative_url(); that helper performs a global str_replace() of the uploads base URL against the stored URL, allowing a crafted URL containing embedded '..<uploads-baseurl>' tokens to collapse into '../../' traversal sequences after the last validation. The transformed value is then appended to the uploads base directory and passed to wp_delete_file() without any canonical containment check. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete arbitrary files on the affected site's server (including wp-config.
Executive ViewAI
UsersWP plugin (≤1.2.70) for WordPress allows any Subscriber-level user to delete critical site files-including wp-config.php-rendering the website inoperable. This affects all WordPress installations using this plugin, exposing organizations to service disruption attacks from trusted account holders, guest contributors, or credential-compromised users. No vendor patch is currently available, leaving affected sites in a critical, unpatched state.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable UsersWP plugin entirely if not critical to operations; (2) Restrict Subscriber account creation to trusted personnel and audit existing Subscriber accounts; (3) Implement restrictive file-system permissions on wp-config.php and core WordPress files; (4) Enable and test daily off-site backups to enable rapid recovery if file deletion occurs; (5) Configure WAF rules to block AJAX requests to upload_file_remove() endpoint if plugin must remain active; (6) Monitor user activity logs for Subscriber-level AJAX requests to suspicious file paths.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
More in Userswp Front End Login Form User Registration User Profile Members Directory Plugin For Wp
View allUnauthenticated attackers can recover the shared password protecting UsersWP's 25 built-in dummy user accounts - in all
Stored Cross-Site Scripting in the UsersWP WordPress plugin (all versions through 1.2.69) allows authenticated attackers
Stored Cross-Site Scripting in UsersWP WordPress plugin up to version 1.2.60 allows authenticated subscribers and above
Blind Server-Side Request Forgery in UsersWP WordPress plugin versions up to 1.2.58 allows authenticated subscribers and
Improper access control in UsersWP plugin for WordPress versions up to 1.2.58 allows authenticated subscribers and above
Insecure Direct Object Reference in the UsersWP WordPress plugin (versions through 1.2.63) allows authenticated editor-l
EUVD-2026-75939
GHSA-mw4c-2xg7-r9h8
NVD
CVE.org
EPSS
Exploit-DB