Description
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.
References6
- plugins.trac.wordpress.org/browser/emails-verification-for-wooc…
- plugins.trac.wordpress.org/browser/emails-verification-for-wooc…
- plugins.trac.wordpress.org/browser/emails-verification-for-wooc…
- plugins.trac.wordpress.org/browser/emails-verification-for-wooc…
- plugins.trac.wordpress.org/changeset?reponame=&old=3744623%40em…
- www.wordfence.com/threat-intel/vulnerabilities/id/6df7b3ed-a1e3…
Metrics
- CVSS 3.1
-
8.1
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - EPSS — exploit probability
- 1% percentile: 53 · as of 10 November 2026
- CWE
- CWE-269
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.