← Back to search

CVE-2026-119075

9.8 CRITICAL

Published 2026-11-07 · Updated 2026-11-07

AI risk analysis

Summary
The Registration Form for WooCommerce plugin (≤1.1.4) lacks role validation in the checkout registration path, allowing unauthenticated attackers to inject arbitrary user roles via POST data during checkout. This bypasses the allow-list check used in the My Account registration flow and enables privilege escalation to Administrator.
Exploitability
Exploitation is trivial for unauthenticated attackers with no prerequisites beyond access to the WooCommerce checkout page; it requires only sending a single HTTP POST request with user_roles=administrator.
Blast radius
Successful exploitation grants full administrative control of the WordPress site, enabling complete data exfiltration, malware deployment, or site defacement.
Detection
Defenders should monitor WooCommerce checkout POST requests for unexpected 'user_roles' parameters containing privileged roles (e.g., administrator, editor); such requests are anomalous since legitimate checkout flows do not submit user role data. Log entries showing new user creation with non-default roles via checkout-triggered events may also indicate exploitation.
Prioritized remediation
Upgrade to Registration Form for WooCommerce version 1.1.5 or later, which enforces role allow-listing in the checkout registration path.
privilege-escalationauth-bypasswoocommerceweb-appunauthenticated

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

The Registration Form for WooCommerce plugin for WordPress is vulnerable to privilege escalation due to a missing allow-list check in the FormHandler::validate_checkout_fields() function in versions up to, and including, 1.1.4 The My Account registration path (validate_fields()) validates a submitted 'tgwcfb/user-roles' value against the form's configured allowed roles, but the checkout registration path (validate_checkout_fields(), hooked to woocommerce_after_checkout_validation) stores the raw $_POST['user_roles'] value in $this->valid_data without any allow-list enforcement, and add_user_data() then injects that value into woocommerce_new_customer_data as the new account's role. This makes it possible for unauthenticated attackers to elevate their privileges to Administrator by supplying a user_roles=administrator parameter when creating an account during checkout, resulting in full site takeover.

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CWE-269

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.