CVE-2026-104745

Customer Email Verification for WooCommerce <= 3.3.0 - Unauthenticated Privilege Escalation to 'alg_wc_ev_verify_email' Parameter

2026-10-15 15:31
Wordfence PRISM

Strategic Overview

Status
Patched in 3.3.1
Affected Version
<= 3.3.0
CVSS
8.1High
Weakness type
CWE-269 · Improper Privilege Management
CVE
CVE-2026-104745
View all Customer Email Verification for WooCommerce vulnerabilities

At a glance

CVE-2026-104745 is a high-severity Improper Privilege Management vulnerability in the Customer Email Verification for WooCommerce WordPress plugin, affecting versions <= 3.3.0. It carries a CVSS score of 8.1 (reachable over the network; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 3.3.1; sites on affected versions should update now. Disclosed October 2026, reported by Wordfence PRISM.

Vulnerability Overview

The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation via the `alg_wc_ev_verify_email` parameter in versions up to, and including, 3.3.0. The vulnerability exists because `alg_wc_ev_generate_user_code()` generates the per-user activation secret using `wp_rand(100)` when the plugin's 'Encoding method' is set to 'hashids', producing only ~101 possible values (~7 bits of entropy); the resulting token is a reversible Hashids encoding with no cryptographic MAC, and the unauthenticated `verify()` handler — hooked to `init` at `PHP_INT_MAX` with no nonce check and no rate limiting — accepts and acts on the attacker-controlled `?alg_wc_ev_verify_email=` GET parameter directly. This makes it possible for unauthenticated attackers to gain authentication as any unverified WordPress account, including administrator-level accounts, by brute-forcing the trivially small activation code space via a forged verification URL. Exploitation requires that the 'Encoding method' setting be changed to 'hashids' (non-default), that the attacker recover or brute-force the Hashids salt (which defaults to an `md5(time())` value set at first initialization), and that the target account's email address remain unverified.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.

CWE-269: Improper Privilege Management

Customer Email Verification for WooCommerce <= 3.3.0 carries this weakness at hashids, and reaching it takes no account at all. Improper privilege management means the code lets an account end up with capabilities its role should not have.

It converts a low-privileged account into an administrative one, which makes every other restriction on the site irrelevant. For Customer Email Verification for WooCommerce the fix is 3.3.1: builds <= 3.3.0 are affected, anything from 3.3.1 onward is not.

Remediation

Update to version 3.3.1, or a newer patched version

How does WordSec protect against this?

This one needs no account at all, which puts it outside what login hardening can reach; WordSec's login security narrows the account-level paths around it, and the firewall is what inspects the request itself. None of that substitutes for the fix: Customer Email Verification for WooCommerce 3.3.1 closes this, and updating the plugin is the step that ends it.

  • Login Security
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C