Privilege escalation in Customer Email Verification for WooCommerce
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-269.
Summary
The Customer Email Verification for WooCommerce plugin from wpcodefactory is affected up to and including version 3.3.0. When the Encoding method is set to hashids, the activation code is drawn from only about 101 possible values and has no cryptographic protection, and the verification handler accepts it without a nonce check or rate limiting. An unauthenticated remote attacker can guess these codes to gain access to unverified WordPress accounts, including administrator accounts (CWE-269). Exploitation requires the non-default Hashids setting and knowledge of the Hashids salt.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
The sources list no fixed version for Customer Email Verification for WooCommerce.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Timeline
- 2026-10-16 Threatist record created from CVE-2026-104745
- 2026-10-16 CISA SSVC decision points changed
- 2026-10-16 Priority changed: MEDIUM → LOW
- 2026-10-16 Alias added: GHSA-hrmj-f3f9-pq8r
- 2026-10-25 EPSS moved to the 50th–90th percentile
References
Other 6
- https://www.wordfence.com/threat-intel/vulnerabilities/id/6df7b3ed-a1e3-4df9-828e-95530661e27a?source=cve
- https://plugins.trac.wordpress.org/browser/emails-verification-for-woocommerce/tags/3.3.0/includes/alg-wc-ev-functions.php#L331
- https://plugins.trac.wordpress.org/browser/emails-verification-for-woocommerce/tags/3.3.0/includes/class-alg-wc-ev-core.php#L784
- https://plugins.trac.wordpress.org/browser/emails-verification-for-woocommerce/tags/3.3.0/includes/class-alg-wc-ev-core.php#L498
- https://plugins.trac.wordpress.org/browser/emails-verification-for-woocommerce/tags/3.3.0/includes/class-alg-wc-ev-core.php#L1258
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3744623%40emails-verification-for-woocommerce&new=3744623%40emails-verification-for-woocommerce
More WPFactory vulnerabilities
- TI-2023-00058 EAN for WooCommerce < 4.4.3 - Contributor+ Stored XSS CVSS 3.1MEDIUM 5.4
- TI-2023-02512 File Renaming on Upload < 2.5.2 - Admin+ Stored Cross-Site Scripting CVSS 3.1MEDIUM 4.8
- TI-2026-80051 SQL injection in WordPress Product Filter by WBW plugin CVSS 3.1CRITICAL 9.3
- TI-2025-22716 WordPress Advanced WooCommerce Product Sales Reporting plugin <= 4.1.1 - SQL Injection vulnerability CVSS 3.1CRITICAL 9.3
- TI-2026-20178 WordPress Advanced WooCommerce Product Sales Reporting plugin <= 4.1.3 - SQL Injection vulnerability CVSS 3.1CRITICAL 9.3
- TI-2024-32898 WordPress Customer Email Verification for WooCommerce plugin <= 2.8.10 - SQL Injection vulnerability CVSS 3.1CRITICAL 9.3
Sources
- CVE-2026-104745 · CVE Program
- CVE-2026-104745 · NVD
- FIRST EPSS
- GHSA-hrmj-f3f9-pq8r · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences