Skip to main content

Charitable CVE-2026-10038

| EUVDEUVD-2026-34927 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-06-06 security@wordfence.com GHSA-9jf2-67mg-r5ph
4.3
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

2
Analysis Generated
Jun 06, 2026 - 00:28 vuln.today
CVE Published
Jun 06, 2026 - 00:16 nvd
MEDIUM 4.3

DescriptionCVE.org

The Charitable - Donation Plugin for WordPress - Fundraising with Recurring Donations & More plugin for WordPress is vulnerable to Insecure Direct Object Reference / Authorization Bypass leading to Arbitrary Attachment Deletion in versions up to, and including, 1.8.11.1 via the profile avatar update flow. This is due to the save_avatar() function in Charitable_Profile_Form calling wp_delete_attachment() on an attachment ID read from the user's 'avatar' meta without validating that the attachment is owned by the user, combined with Charitable_Data_Processor::process_picture() returning the raw posted value when no file is uploaded, allowing the 'avatar' user meta to be poisoned with any attacker-chosen attachment ID. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete arbitrary attachments from the Media Library by performing a two-request chain (first poisoning the stored avatar meta value with a target attachment ID, then triggering deletion via a normal avatar upload).

AnalysisAI

Arbitrary Media Library attachment deletion in the Charitable donation plugin for WordPress (versions through 1.8.11.1) is achievable by any authenticated user with Subscriber-level access or above via a two-stage IDOR exploit chain in the profile avatar update flow. The attack chains two weak points: Charitable_Data_Processor::process_picture() returns a raw user-supplied attachment ID verbatim when no file is uploaded, allowing an attacker to poison their own avatar user meta with any arbitrary attachment ID, which save_avatar() then blindly passes to wp_delete_attachment() without verifying that the target attachment belongs to the requesting user. No public exploit has been identified at time of analysis, and exploitation is constrained to authenticated users on sites with active user registration.

Technical ContextAI

CWE-639 (Authorization Through User-Controlled Key) precisely describes the root cause: the plugin uses an attachment ID as an authorization key, but the ID is supplied by the user and never validated against ownership. The vulnerable code path spans two PHP classes within the Charitable plugin: Charitable_Data_Processor::process_picture() (class-charitable-data-processor.php, line 270) performs no ownership check when no file is uploaded and simply returns the posted value, and Charitable_Profile_Form::save_avatar() (class-charitable-profile-form.php, lines 724/728) reads the 'avatar' user meta and passes the stored ID directly to WordPress core's wp_delete_attachment() (class-charitable-user.php, line 986). The WordPress wp_delete_attachment() function itself is a privileged operation not gated by the plugin's authorization layer. Because WordPress grants Subscriber-level users access to the profile form, any registered user can initiate this chain. The attack is two-request: the first request poisons the avatar meta; the second request (a normal avatar upload trigger) activates deletion.

RemediationAI

An upstream fix has been committed to the Charitable plugin trunk on WordPress Trac via changeset 3557047, modifying class-charitable-profile-form.php to enforce attachment ownership validation before calling wp_delete_attachment(). The exact released patched version number is not independently confirmed from the available input data - site administrators should update to the latest available version of the Charitable plugin through the WordPress plugin repository and verify the version exceeds 1.8.11.1. If an immediate update is not possible, the most targeted compensating control is to disable frontend user registration entirely (WordPress Settings > General > uncheck 'Anyone can register'), which removes the Subscriber account prerequisite and makes the attack chain non-executable. A secondary workaround is to restrict avatar upload functionality within the plugin's profile form settings if the feature is not required, preventing the trigger mechanism from firing. Note that disabling registration may impact fundraiser campaign participant flows if Charitable is used for donor account creation.

CVE-2016-10045 CRITICAL POC
9.8 Dec 30

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-8353 CRITICAL POC
9.8 Sep 28

The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-3495 CRITICAL POC
9.8 May 22

The Country State City Dropdown CF7 plugin for WordPress is vulnerable to SQL Injection via the ‘cnt’ and 'sid' paramete

Share

CVE-2026-10038 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy