/

CVE-2026-108695

Severity:

HIGH RISK

(7.1)

Incorrect Authorization (CWE-863) in MultiVendorX Plugin

CVE-2026-108695

Deferred

Vulnerability type

Category:

Incorrect Authorization

CWE:

CWE-863

Impact:

Unauthorized Modification of Marketplace Settings

Severity:

HIGH RISK

(7.1)

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

MultiVendorX for WordPress contains an incorrect authorization vulnerability in its settings REST endpoint. A vendor account with the store_owner role may be able to change marketplace-wide commission, payout, and onboarding settings when access is gated only by the edit_stores capability.

MultiVendorX for WordPress contains an incorrect authorization vulnerability in its settings REST endpoint. A vendor account with the store_owner role may be able to change marketplace-wide commission, payout, and onboarding settings when access is gated only by the edit_stores capability.

Affected context

The issue occurs in MultiVendorX WordPress installations through version 5.0.19 where vendor-facing accounts can reach the settings REST endpoint and are granted the edit_stores capability. In this context, authorization may not sufficiently distinguish store-level management from marketplace-wide administrative settings.

The issue occurs in MultiVendorX WordPress installations through version 5.0.19 where vendor-facing accounts can reach the settings REST endpoint and are granted the edit_stores capability. In this context, authorization may not sufficiently distinguish store-level management from marketplace-wide administrative settings.

Exploit preconditions

  • Attack surface: WordPress REST API endpoint at /wp-json/multivendorx/v1/settings
  • Required access: An authenticated account with the store_owner role or equivalent access to the edit_stores capability
  • Trigger point: A POST request that submits marketplace settings through the settings endpoint
  • Why exploitation is possible: The endpoint relies on an authorization check that may permit vendor-level access to settings intended for broader marketplace administration
  • Attack surface: WordPress REST API endpoint at /wp-json/multivendorx/v1/settings
  • Required access: An authenticated account with the store_owner role or equivalent access to the edit_stores capability
  • Trigger point: A POST request that submits marketplace settings through the settings endpoint
  • Why exploitation is possible: The endpoint relies on an authorization check that may permit vendor-level access to settings intended for broader marketplace administration

Why this happens

The vulnerability results from an authorization design error in which a capability appropriate for store-level operations is used to protect marketplace-wide configuration changes. This maps to CWE-863, Incorrect Authorization, because the application may authenticate the requester but fail to verify that the account is authorized for the specific administrative action or scope of the requested settings.

The vulnerability results from an authorization design error in which a capability appropriate for store-level operations is used to protect marketplace-wide configuration changes. This maps to CWE-863, Incorrect Authorization, because the application may authenticate the requester but fail to verify that the account is authorized for the specific administrative action or scope of the requested settings.

Potential impact

  • Marketplace commission rules may be changed without appropriate authorization
  • Payout behavior or financial administration may be altered
  • Vendor onboarding controls may be modified
  • Marketplace operations could be disrupted
  • Unauthorized settings changes may create financial, compliance, or trust impacts
  • Marketplace commission rules may be changed without appropriate authorization
  • Payout behavior or financial administration may be altered
  • Vendor onboarding controls may be modified
  • Marketplace operations could be disrupted
  • Unauthorized settings changes may create financial, compliance, or trust impacts

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the resource and action level rather than relying only on a broad role capability.

Common defensive patterns include:

  • Separating vendor-level permissions from marketplace-wide administrative permissions
  • Applying explicit capability and ownership checks for each settings operation
  • Enforcing server-side allowlists for settings that each role may modify
  • Using secure-by-default deny rules for administrative REST endpoints
  • Limiting privileged WordPress roles and reviewing capability assignments regularly
  • Recording and reviewing changes to financial and onboarding configuration

Mitigation generally focuses on enforcing authorization at the resource and action level rather than relying only on a broad role capability.

Common defensive patterns include:

  • Separating vendor-level permissions from marketplace-wide administrative permissions
  • Applying explicit capability and ownership checks for each settings operation
  • Enforcing server-side allowlists for settings that each role may modify
  • Using secure-by-default deny rules for administrative REST endpoints
  • Limiting privileged WordPress roles and reviewing capability assignments regularly
  • Recording and reviewing changes to financial and onboarding configuration

How teams detect issues like this

Detection approaches may include:

  • Static analysis and code review for REST routes whose permission callbacks use broad or mismatched capabilities
  • Reviewing whether vendor roles can access endpoints intended for marketplace administrators
  • Monitoring POST requests to the MultiVendorX settings endpoint and correlating them with account roles
  • Auditing changes to commission, payout, and onboarding settings
  • Enforcing API authorization policies that require explicit administrative scopes
  • Using automated security review tools to identify missing object-level or action-level authorization checks

Detection approaches may include:

  • Static analysis and code review for REST routes whose permission callbacks use broad or mismatched capabilities
  • Reviewing whether vendor roles can access endpoints intended for marketplace administrators
  • Monitoring POST requests to the MultiVendorX settings endpoint and correlating them with account roles
  • Auditing changes to commission, payout, and onboarding settings
  • Enforcing API authorization policies that require explicit administrative scopes
  • Using automated security review tools to identify missing object-level or action-level authorization checks

Sources

SourceLink
github.comgithub.com/multivendorx/multivendorx
github.comgithub.com/multivendorx/multivendorx/blob/8a717799b02f698e4b2b61a282062a41fbe15183/plugins/multivendorx/classes/RestAPI/Controllers/Settings.php#L157-L172
github.comgithub.com/multivendorx/multivendorx/blob/8a717799b02f698e4b2b61a282062a41fbe15183/plugins/multivendorx/classes/RestAPI/Controllers/Settings.php#L77-L80
github.comgithub.com/multivendorx/multivendorx/issues/2375
wordpress.orgwordpress.org/plugins/dc-woocommerce-multi-vendor/
vulncheck.comvulncheck.com/advisories/multivendorx-through-5.0.19-incorrect-authorization-via-settings-rest-endpoint

Frequently asked

questions

It may be exploitable through the WordPress REST API when the endpoint is reachable and an attacker has a qualifying authenticated vendor account.

Not necessarily. The described condition involves a store_owner account with the edit_stores capability, rather than full WordPress administrator privileges.

Enforce explicit server-side authorization for each marketplace-wide setting and restrict those operations to roles with the appropriate administrative scope.

Separate vendor and marketplace permissions, apply deny-by-default checks to REST routes, test authorization across all roles, and audit sensitive configuration changes.

It may be exploitable through the WordPress REST API when the endpoint is reachable and an attacker has a qualifying authenticated vendor account.

Not necessarily. The described condition involves a store_owner account with the edit_stores capability, rather than full WordPress administrator privileges.

Enforce explicit server-side authorization for each marketplace-wide setting and restrict those operations to roles with the appropriate administrative scope.

Separate vendor and marketplace permissions, apply deny-by-default checks to REST routes, test authorization across all roles, and audit sensitive configuration changes.

Find out what's already
exploitable in your codebase.