CVE-2026-104745
HighCVSS 8.1Exploitation Probability (EPSS)
Low risk43th percentile - higher than 43% of all known CVEs
Summary
The Customer Email Verification for WooCommerce plugin (versions up to and including 3.3.0) is vulnerable to privilege escalation via the 'alg_wc_ev_verify_email' parameter. The activation code is generated using wp_rand(100), yielding only ~101 possible values, and the verify() handler lacks nonce checks and rate limiting.
Risk Assessment
An unauthenticated attacker can gain authentication as any unverified WordPress account, including administrator-level accounts, by brute-forcing the activation code and using a forged verification URL.
Recommendation
Update the Customer Email Verification for WooCommerce plugin to a version newer than 3.3.0, and if not possible, change the encoding method from 'hashids' and verify all accounts.
Other vulnerabilities in Customer Email Verification for WooCommerce
See all- CVE-2026-14182Critical
The Customer Email Verification for WooCommerce WordPress plugin before version 3.2.6 does not correctly validate the email-verification activation code, relying on a loose comparison that an attacker can satisfy with a crafted value type, allowing unauthenticated users to verify and take over the account of any registered user who has not yet confirmed their email address.
- CVE-2026-109236Medium
The Customer Email Verification for WooCommerce plugin in versions up to and including 2.8.2 is vulnerable to Authentication Bypass via a Predictable Email-Verification Token. The authenticate_user_by_email_link() function lacks capability and nonce checks, and the token is generated as md5(email . time()), allowing unauthenticated attackers to log in as a newly created customer or mark an account as verified.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

