WooCommerce Frontend Registration Form Unauthenticated Admin Role Assignment — CVE-2026-54807
by Not disclosed (repo owner: github.com/izxci) · 2026-07-05
- Severity
- Not disclosed
- CVE
- CVE-2026-54807
- Category
- web
- Affected product
- WordPress plugin exposing a custom WooCommerce-style frontend registration form (form fields prefixed tgwcfb_*)
- Affected versions
- Not disclosed in the source repo
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Tags
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | Unknown |
| Author / Researcher | Not disclosed (repo owner: github.com/izxci) |
| CVE / Advisory | CVE-2026-54807 |
| Category | web |
| Severity | Not disclosed |
| CVSS Score | Not disclosed |
| Status | PoC |
| Tags | wordpress, woocommerce, privilege-escalation, registration-form, admin-takeover, broken-access-control |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | WordPress plugin exposing a custom WooCommerce-style frontend registration form (form fields prefixed tgwcfb_*) |
| Versions Affected | Not disclosed in the source repo |
| Language / Platform | PHP / WordPress + WooCommerce; PoC written in Bash (curl) |
| Authentication Required | No |
| Network Access Required | Yes (HTTP access to the site’s frontend registration page) |
Summary
The vulnerable plugin’s frontend user-registration form accepts a user_roles parameter directly from the unauthenticated registration POST request and trusts it when creating the new WordPress account, instead of forcing a safe default role (e.g. subscriber or customer). By submitting user_roles=administrator alongside the registration form’s nonces, an unauthenticated attacker can self-register a brand-new WordPress administrator account and log straight into wp-admin.
Vulnerability Details
Root Cause
Missing server-side role validation/allowlisting on a public-facing registration endpoint — the plugin passes an attacker-supplied user_roles form field straight through to the user-creation call (classic CWE-269 Improper Privilege Management / broken access control).
Attack Vector
- Attacker requests the site’s public registration page and scrapes the form’s
tgwcfb_id,woocommerce-register-nonce, andtgwcfb-register-noncevalues. - Attacker submits a registration POST request with a generated username/email/password and
user_roles=administrator. - The plugin creates the account with the requested role instead of a restricted default.
- Attacker logs in as the newly created account via
wp-login.phpand confirms administrator role via the WordPress REST API (/wp/v2/users/me).
Impact
Unauthenticated full administrator account takeover of the WordPress site — complete compromise of site content, plugins, and (depending on hosting) potential path to server-level code execution via plugin/theme editing.
Environment / Lab Setup
Target: WordPress + WooCommerce site running the vulnerable frontend registration-form plugin, registration page reachable over HTTP/HTTPS
Attacker: bash + curl (Linux/macOS shell, or WSL/Git Bash on Windows)
Proof of Concept
PoC Script
See
exp.shin this folder. Edit theTARGETandPAGE_IDvariables at the top of the script before running.
| |
The script scrapes the registration form’s nonces from the target page, submits a registration request with user_roles=administrator to create a rogue admin account, logs in with the new credentials, and queries the WordPress REST API to confirm the account was granted the administrator role.
Detection & IOCs
Signs of compromise:
- New administrator accounts with unfamiliar usernames/emails and creation timestamps that don’t correspond to known admin onboarding
- Registration POST requests containing a
user_roles=administrator(or similar) parameter - Unexpected successful logins immediately following an unauthenticated registration request
Remediation
| Action | Detail |
|---|---|
| Primary fix | Update the affected plugin to a patched version once available; in the meantime, patch/override the registration handler to ignore or strictly allowlist the user_roles parameter, forcing new frontend registrations to a safe default role |
| Interim mitigation | Disable the frontend registration form, or add a WAF/reverse-proxy rule blocking user_roles=administrator (and other privileged roles) in registration POST bodies; audit existing user list for unauthorized administrator accounts |
References
Notes
Mirrored from https://github.com/izxci/CVE-2026-54807 on 2026-07-05. The upstream repo’s README consists mainly of a promotional link to a “PRIV8 TOOLS” Telegram channel and contains almost no technical write-up beyond the title; all vulnerability analysis above was derived directly from reading exp.sh. The CVE/vendor advisory did not disclose CVSS or precise affected version range at time of mirroring.
| |