/

CVE-2026-93428

Severity:

HIGH RISK

(7.5)

Authorization Bypass (CWE-862) in Ultimate Member AJAX

CVE-2026-93428

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-862

Impact:

Unauthorized disclosure of privacy-restricted profile information

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

An authorization bypass in the Ultimate Member WordPress plugin allows unauthenticated visitors to retrieve member profile fields intended to be visible only to profile owners, authenticated members, or selected roles. The risk arises when the publicly accessible member endpoint is queried with a nonce that is distributed to all site visitors and therefore does not provide meaningful authorization.

Affected context

The issue may occur in WordPress sites using the Ultimate Member plugin when member profile data is served through the publicly accessible wp_ajax_nopriv_um_get_members endpoint. It is particularly relevant when profile fields are configured with owner-only, members-only, or role-restricted visibility but the endpoint does not independently enforce those restrictions.

Exploit preconditions

  • Attack surface: Publicly reachable WordPress AJAX functionality
  • Required access: No authenticated account is required; an attacker only needs network access to the site
  • Trigger point: Requests to the wp_ajax_nopriv_um_get_members endpoint
  • Required token condition: The um-frontend-nonce value is available to unauthenticated visitors
  • Why exploitation is possible: The endpoint does not adequately verify whether the requester is authorized to view the requested profile fields

Why this happens

The underlying flaw is an authorization enforcement failure mapped to CWE-862: Missing Authorization. The endpoint relies on a nonce that is emitted to anonymous visitors, but possession of that nonce does not establish ownership, membership, or role-based permission. Because the server-side handler does not consistently enforce the configured visibility rules before returning profile values, privacy restrictions can be bypassed.

Potential impact

  • Unauthenticated attackers may view profile fields intended for restricted audiences
  • Private member information could be disclosed
  • Site users may experience loss of privacy and increased exposure to targeted abuse
  • Organizations could face compliance, trust, or reputational consequences

General mitigation guidance

Mitigation generally focuses on enforcing authorization on the server for

every profile-data request rather than treating a client-distributed nonce

as proof of permission.

Defensive patterns include:

  • Applying explicit ownership, authentication, membership, and role checks before returning each restricted field
  • Treating nonces as request-integrity or cross-site request forgery defenses, not as authorization credentials
  • Returning only fields permitted for the current requester and filtering responses by policy
  • Using secure-by-default privacy settings for newly defined profile fields
  • Minimizing anonymous endpoint functionality and limiting the data exposed by public queries
  • Protecting sensitive profile values through least-privilege access controls and consistent policy enforcement

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis and code review of AJAX handlers for missing capability, ownership, role, or authentication checks
  • Tests that access profile endpoints anonymously and verify that restricted fields are omitted
  • Review of client-side scripts for tokens or nonces exposed to unauthenticated users
  • Dynamic monitoring for anonymous requests that enumerate member records or retrieve restricted attributes
  • Policy checks requiring server-side authorization before sensitive data is serialized into responses

Automated security review tools may help identify public handlers that return user data without corresponding authorization logic.

Sources

SourceLink
github.comgithub.com/ultimatemember/ultimatemember/releases/tag/2.14.0
plugins.trac.wordpress.orgplugins.trac.wordpress.org/browser/ultimate-member/tags/2.13.1/includes/core/class-ajax-common.php#L61
plugins.trac.wordpress.orgplugins.trac.wordpress.org/browser/ultimate-member/tags/2.13.1/includes/core/class-fields.php#L144
plugins.trac.wordpress.orgplugins.trac.wordpress.org/browser/ultimate-member/tags/2.13.1/includes/core/class-member-directory.php#L2795
plugins.trac.wordpress.orgplugins.trac.wordpress.org/browser/ultimate-member/tags/2.13.1/includes/core/class-member-directory.php#L2839
plugins.trac.wordpress.orgplugins.trac.wordpress.org/browser/ultimate-member/tags/2.13.1/includes/core/um-actions-profile.php#L1319
plugins.trac.wordpress.orgplugins.trac.wordpress.org/browser/ultimate-member/tags/2.13.1/includes/um-short-functions.php#L1579
wordfence.comwordfence.com/threat-intel/vulnerabilities/id/cde81421-e080-4530-87a5-6515f1c9800b?source=cve

Frequently asked

questions

Yes. The affected endpoint is publicly accessible, and the required nonce is

provided to unauthenticated visitors. The key condition is the endpoint's

failure to enforce profile visibility permissions.

No. A nonce can help validate request origin or freshness, but it is not a

substitute for checking whether the requester may view a particular field.

Enforce authorization server-side for every requested profile field, using

the current user's identity, ownership relationship, authentication state,

and applicable role or membership policy.

Test public endpoints with anonymous and low-privilege users, review all

sensitive data responses for explicit authorization checks, and use

least-privilege privacy policies by default.

Find out what's already
exploitable in your codebase.