Skip to main content

WP User Manager EUVDEUVD-2026-84307

| CVE-2026-18345 MEDIUM
Missing Authorization (CWE-862)
2026-09-22 Wordfence GHSA-9596-j6mw-33fx
4.3
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register Subscriber account on target
  2. Delivery
    Complete attacker's own Stripe Connect OAuth
  3. Exploit
    Visit /wp-admin/ to fire admin_init callback
  4. Execution
    Connect::complete() writes attacker Stripe keys to wpum_settings
  5. Impact
    Customer payments routed to attacker account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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

Requires (1) an authenticated account at Subscriber level or above on the target site, and (2) the site actively using the WP User Manager Stripe Connect integration so that wpum_settings holds live payment credentials worth hijacking. The vulnerable Connect::complete() is hooked on admin_init, which fires for any authenticated user who reaches /wp-admin/, so no admin role, nonce, or user interaction is needed beyond loading an admin page. Limiting factors: the attacker must first obtain a low-privilege account (registration must be open or otherwise obtainable), must complete their own Stripe Connect OAuth flow to have credentials to inject, and the attack is only meaningful on sites that process payments through WPUM's Stripe integration - sites not using Stripe Connect have nothing to hijack.

Impact

The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N, base 4.3) is internally consistent with the description: a network-reachable flaw requiring only low privileges (any authenticated Subscriber-and-above account), no user interaction, and delivering integrity-only impact (I:L) with no confidentiality or availability loss. The CWE-862 (missing authorization) mapping is accurate and matches the described lack of current_user_can()/nonce checks. No EPSS score, no CISA KEV listing, and no public exploit code are provided, so all three exploitation-probability signals are absent rather than negative. SSVC-style reasoning: exploitation status is 'none observed', the flaw is technically simple and could be automatable in principle, but its technical impact is partial (payment rerouting, not full site takeover). The headline nuance is that although CVSS rates this only Medium (4.3) on I:L, the real-world business impact can be high - diverting all future Stripe payments to an attacker's account is direct financial theft, which the abstract 'low integrity' score understates. Conversely, the gating requirements (a valid low-priv account AND the site actively using the WPUM Stripe Connect integration) keep the practical attack surface narrow. The 'Authentication Bypass' tag conflicts with the data: the attacker is already authenticated, so this is a missing-authorization/broken-access-control issue, not an auth bypass - verify tagging.

Exploit ScenarioDerived

An attacker registers a Subscriber account on a target WordPress site running WP User Manager with Stripe Connect enabled, completes their own Stripe Connect OAuth flow to obtain attacker-controlled credentials, then simply loads /wp-admin/ to trigger the unprotected Connect::complete() on admin_init, which overwrites the site's stored Stripe publishable key, secret key, gateway mode, and connected account ID. All subsequent customer payments are then routed to the attacker's Stripe account. No public exploit code is identified at time of analysis, and the low complexity (AC:L, no nonce/UI) makes reliable exploitation straightforward for anyone with a low-privilege account.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 22, 2026

Authenticated Stripe integration hijacking in WP User Manager (User Profile Builder & Membership) versions up to and including 2.9.18 lets any logged-in user at Subscriber level or above overwrite the site's stored Stripe credentials, causing future payments to be routed to an attacker-controlled Stripe account. The flaw is a missing authorization check (CWE-862): Connect::complete() runs on admin_init without any current_user_can() or nonce verification, so merely reaching a /wp-admin/ page is enough to trigger it. Exploitation requires a low-privilege account on the target site plus a completed attacker-side Stripe Connect OAuth flow, and it only has impact where WPUM's Stripe Connect integration is actively in use; CVSS 3.1 base is 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), reflecting integrity-only impact, and no public exploit code was identified at time of analysis.

RemediationAI

Vendor patch status: an upstream fix is available in the wp-user-manager changeset at revision 3701837 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3701837%40wp-user-manager&new=3701837%40wp-user-manager), but a separately released patched plugin version is not independently confirmed by the data provided, so administrators should check the plugin's changelog and update to the first release that includes this changeset rather than assuming 2.9.18 is safe. Until an updated release is installed, the most effective compensating control is to disable the Stripe Connect integration entirely or deactivate the WP User Manager plugin if Stripe Connect is not in active use - the trade-off being loss of the membership/Stripe payment functionality that depends on it. Because the attack requires a logged-in account, closing self-registration, disabling open membership sign-ups, or removing Subscriber accounts that should not exist raises the bar considerably, with the side effect of blocking legitimate new user onboarding. Restricting access to /wp-admin/ (for example via a reverse-proxy/IP allowlist or an auth-gating plugin) prevents the admin_init hook from firing for low-privilege sessions, though this can interfere with legitimate front-end admin-ajax workflows and normal subscriber dashboard usage. Sites that must remain live should also treat the integration as potentially compromised: rotate the Stripe API keys in the Stripe dashboard, re-verify the connected account ID in the plugin's Stripe settings, and audit wpum_settings and Stripe payment routing logs for keys or account IDs that do not match the owner's own account. Finally, if immediate patching is impossible, a short mu-plugin that returns early from Connect::complete() unless current_user_can('manage_options') is true can restore the missing authorization check, at the cost of also blocking any legitimate non-admin completion path - which is an acceptable trade since legitimate Stripe Connect configuration is normally performed by administrators.

Affected VersionsENISA

WP User Manager – User Profile Builder & Membership 0 ≤2.9.18

Affected Packages

euvd wp_user_manager_user_profile_builder_membership no fix

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

WP User Manager is a WordPress membership and user-profile plugin that optionally integrates with Stripe via Stripe Connect. The vulnerable code lives in includes/integrations/stripe/Connect.php, where the complete() method (referenced around lines 21, 177 and 203 in the 2.9.18 tag) is registered as a callback on the admin_init action hook. Because admin_init fires on every request to /wp-admin/ for any authenticated user - including Subscribers, who have no administrative capabilities - the callback is reachable by anyone with a valid low-privilege session. The method performs no current_user_can() capability check and no nonce validation before contacting the external WPUM connect service, retrieving Stripe credentials, and persisting them (publishable key, secret key, gateway mode, and connected Stripe account ID) into the wpum_settings option through wpum_update_option()/update_option(). This is the classic CWE-862 Missing Authorization pattern: a privileged state-changing operation is exposed on a hook that is not limited to privileged users, and the only guard absent is an authorization check. The practical consequence is an OAuth-callback-style hijack: an attacker who completes their own Stripe Connect flow can replay the callback against the victim site and silently rebind the site's payment gateway to their own Stripe account.

Know when Wordpress Plugin 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

Vendor (Wordfence) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 4.3 MEDIUM

Network-reachable admin_init callback exploitable by any Subscriber (PR:L) with no nonce or user interaction (AC:L/UI:N); impact is integrity-only payment reroute (I:L), no confidentiality or availability loss.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

DescriptionCVE.org

The WP User Manager plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the Connect::complete() function in versions up to, and including, 2.9.18. The function is registered on the admin_init hook (which fires for every authenticated user that reaches /wp-admin/, including Subscribers) and performs no current_user_can() or nonce verification before fetching Stripe credentials from the external WPUM connect service and writing them (publishable key, secret key, gateway mode, and connected Stripe account ID) into the wpum_settings option via wpum_update_option()/update_option(). This makes it possible for authenticated attackers, with Subscriber-level access and above, to hijack the site's Stripe integration by completing their own Stripe Connect OAuth flow and then invoking the callback on the target site, causing all subsequent Stripe payments to be routed to the attacker's Stripe account.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
popular WordPress membership/profile plugin, but Stripe Connect feature gated
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
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-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

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-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

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-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

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