CVE-2026-119075
9.8 CRITICALPublished 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.
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
- https://plugins.trac.wordpress.org/browser/registration-form-for-woocommerce/tags/1.1.3/includes/FormHandler.php#L354
- https://plugins.trac.wordpress.org/browser/registration-form-for-woocommerce/tags/1.1.3/includes/FormHandler.php#L407
- https://plugins.trac.wordpress.org/changeset?old_path=%2Fregistration-form-for-woocommerce%2Ftags%2F1.1.4&new_path=%2Fregistration-form-for-woocommerce%2Ftags%2F1.1.5
- https://www.wordfence.com/threat-intel/vulnerabilities/id/714d10b0-526c-4347-a369-85fc32ef3478?source=cve
Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.
Related CVEs
- HIGHCVE-2026-114387PoC
- CRITICALCVE-2026-121352
- CRITICALCVE-2026-121355
- CRITICALCVE-2026-123218
- CRITICALCVE-2026-123294
- HIGHCVE-2026-56828PoC
- CRITICALCVE-2026-63017PoC
- CRITICALCVE-2026-63438PoC
Related by shared AI tags and CWE weakness class. Browse the full archive.