ZeroHour

CVE-2026-19991

moderate

Authenticated Arbitrary File Deletion in UsersWP WordPress Plugin (≤ 1.2.70)

CVSS 3.1
8.1 high
EPSS
Published
()
Modified
AI analysis

UsersWP, a WordPress user-profile and registration plugin, is vulnerable to arbitrary file deletion in all versions up to and including 1.2.70 via its upload_file_remove() AJAX handler. Because the account 'file' field value is taken directly from $_POST when no real upload occurs, and the only validation (validate_file()) merely rejects a literal '../', an attacker can store a crafted URL containing embedded '.. ' tokens that collapse into '../../' traversal sequences when uwp_get_file_relative_url() later performs a str_replace() of the uploads base URL — after the final validation — with the transformed path appended to the uploads directory and passed to wp_delete_file() with no canonical containment check. Any authenticated attacker with Subscriber-level access or higher can thereby delete arbitrary files on the server, including wp-config.php, which can break or take down the site (CVSS 3.1: 8.1 High, with high integrity and availability impact). All WordPress sites running UsersWP version 1.2.70 or earlier are affected, most directly where the UsersWP account form includes a file field. No public proof-of-concept, CISA KEV listing, or confirmed in-the-wild exploitation is known as of this analysis.

What to do: Update UsersWP to the first patched release after 1.2.70 as soon as it is available (the data does not specify a fixed version number). Until patched, restrict Subscriber registrations or limit which users can submit the UsersWP account file field, and consider WAF rules blocking crafted file URLs containing '.. ' sequences. Check for signs of exploitation such as unexpectedly missing files on the server, especially wp-config.php.

Affected
AyeCode UsersWP plugin for WordPressall versions up to and including 1.2.70 (no fixed version number provided in the data)
Estimated exposure
moderate≈10,000 sites (UsersWP's WordPress.org active-install listing is on the order of 10k; fewer if the account form lacks a 'file' field) — Estimate based on the plugin's publicly listed WordPress.org active-install count (roughly 10,000), somewhat reduced because exploitation additionally requires a file field on the UsersWP account form.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

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 '.. ' 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.

Ecosystems
WordPress
Weakness
CWE-22
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

In the news

No ingested article mentions this CVE yet.