CVE-2026-109236
Customer Email Verification for WooCommerce <= 2.8.2 - Unauthenticated Authentication Bypass via Predictable Email-Verification Token to 'cusomer_email_verify' Parameter
The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Authentication Bypass via a Predictable Email-Verification Token in all versions up to, and including, 2.8.2. This is due to the authenticate_user_by_email_link() function — hooked on the wp action and triggered by the cusomer_email_verify GET parameter — lacking any capability check or nonce verification, while the secret_code it validates is generated as md5(email . time()) and the verify_otp_nonce required to trigger token issuance via the wp_ajax_nopriv_resend_otp handler is emitted to every front-end visitor through wp_localize_script. This makes it possible for unauthenticated attackers to log in as a newly created, verified WooCommerce customer bound to an arbitrary email address — or to flip an existing account's customer_email_verified meta to verified — fully bypassing the plugin's core email-verification control. Exploitation requires the cev_user_log table to contain a password column, which is absent from the fresh-install schema shipped in version 2.8.2 but is present on sites upgraded from an older version where that column was defined.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.8
Customer Email Verification for WooCommerce <= 2.8.2 - Unauthenticated Authentication Bypass via Predictable Email-Verification Token to 'cusomer_email_verify' Parameter
The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Authentication Bypass via a Predictable Email-Verification Token in all versions up to, and including, 2.8.2. This is due to the authenticate_user_by_email_link() function — hooked on the wp action and triggered by the cusomer_email_verify GET parameter — lacking any capability check or nonce verification, while the secret_code it validates is generated as md5(email . time()) and the verify_otp_nonce required to trigger token issuance via the wp_ajax_nopriv_resend_otp handler is emitted to every front-end visitor through wp_localize_script. This makes it possible for unauthenticated attackers to log in as a newly created, verified WooCommerce customer bound to an arbitrary email address — or to flip an existing account's customer_email_verified meta to verified — fully bypassing the plugin's core email-verification control. Exploitation requires the cev_user_log table to contain a password column, which is absent from the fresh-install schema shipped in version 2.8.2 but is present on sites upgraded from an older version where that column was defined.
- Record
CVE-2026-109236- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
EUVDEUVD-2026-111594
4.8
The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Authentication Bypass via a Predictable Email-Verification Token in all versions up to, and including, 2.8.2. This is due to the authenticate_user_by_email_link() function — hooked on the wp action and triggered by the cusomer_email_verify GET parameter — lacking any capability check or nonce verification, while the secret_code it validates is generated as md5(email . time()) and the verify_otp_nonce required to trigger token issuance via the wp_ajax_nopriv_resend_otp handler is emitted to every front-end visitor through wp_localize_script. This makes it possible for unauthenticated attackers to log in as a newly created, verified WooCommerce customer bound to an arbitrary email address — or to flip an existing account's customer_email_verified meta to verified — fully bypassing the plugin's core email-verification control. Exploitation requires the cev_user_log table to contain a password column, which is absent from the fresh-install schema shipped in version 2.8.2 but is present on sites upgraded from an older version where that column was defined.
- Record
EUVD-2026-111594- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fmvc-698m-vpm5
4.8
The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to...
The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Authentication Bypass via a Predictable Email-Verification Token in all versions up to, and including, 2.8.2. This is due to the authenticate_user_by_email_link() function — hooked on the wp action and triggered by the cusomer_email_verify GET parameter — lacking any capability check or nonce verification, while the secret_code it validates is generated as md5(email . time()) and the verify_otp_nonce required to trigger token issuance via the wp_ajax_nopriv_resend_otp handler is emitted to every front-end visitor through wp_localize_script. This makes it possible for unauthenticated attackers to log in as a newly created, verified WooCommerce customer bound to an arbitrary email address — or to flip an existing account's customer_email_verified meta to verified — fully bypassing the plugin's core email-verification control. Exploitation requires the cev_user_log table to contain a password column, which is absent from the fresh-install schema shipped in version 2.8.2 but is present on sites upgraded from an older version where that column was defined.
- Record
GHSA-fmvc-698m-vpm5- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
NVD
4.8
The Customer Email Verification for WooCommerce plugin for WordPress is vulnerable to Authentication Bypass via a Predictable Email-Verification Token in all versions up to, and including, 2.8.2. This is due to the authenticate_user_by_email_link() function — hooked on the wp action and triggered by the cusomer_email_verify GET parameter — lacking any capability check or nonce verification, while the secret_code it validates is generated as md5(email . time()) and the verify_otp_nonce required to trigger token issuance via the wp_ajax_nopriv_resend_otp handler is emitted to every front-end visitor through wp_localize_script. This makes it possible for unauthenticated attackers to log in as a newly created, verified WooCommerce customer bound to an arbitrary email address — or to flip an existing account's customer_email_verified meta to verified — fully bypassing the plugin's core email-verification control. Exploitation requires the cev_user_log table to contain a password column, which is absent from the fresh-install schema shipped in version 2.8.2 but is present on sites upgraded from an older version where that column was defined.
- Record
CVE-2026-109236- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-109236 is a medium vulnerability (CVSS 4.8) in Wpfactory Customer Email Verification For Woocommerce, published October 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.34%, the 28th percentile. No source names a fixed version.
References
wordfence.com/threat-intel/vulnerabilities/id/a2e9fa74-5501-4429-a500-1d4199571a34?source=cve
plugins.trac.wordpress.org/browser/customer-email-verification-for-woocommerce/tags/2.8.2/includes/class-wc-customer-email-verification-signup.php
wordpress.org/plugins/customer-email-verification-for-woocommerce
plugins.trac.wordpress.org/browser/customer-email-verification-for-woocommerce/tags/2.8.3/includes/class-wc-customer-email-verification-signup.php
nvd.nist.gov/vuln/detail/CVE-2026-109236
github.com/advisories/GHSA-fmvc-698m-vpm5