Skip to main content

Customer Email Verification EUVDEUVD-2026-111594

| CVE-2026-109236 MEDIUM
Improper Authentication (CWE-287)
2026-10-28 Wordfence GHSA-fmvc-698m-vpm5
4.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Load front-end page and scrape verify_otp_nonce
  2. Delivery
    Call resend_otp AJAX to trigger token issuance
  3. Exploit
    Predict md5(email + time()) secret_code
  4. Execution
    Submit cusomer_email_verify GET parameter
  5. Impact
    Log in as verified WooCommerce customer

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the plugin's cev_user_log table contain a password column - present on sites upgraded from an older plugin version that defined it, but absent from the fresh-install schema shipped in 2.8.2, so default clean installs of 2.8.2 are not exploitable. When that column exists, no authentication is required (PR:N): the attacker only needs front-end access, since the verify_otp_nonce is emitted to every visitor via wp_localize_script and the authenticate_user_by_email_link() function (hooked on wp, triggered by the cusomer_email_verify GET parameter) performs no capability or nonce check. The limiting factors are the password-column precondition and the need to predict the md5(email . time()) secret_code, which is what the CVSS AC:H reflects; the impact is limited to customer-level account access (C:L/I:L), not administrative takeover.

Impact

This is a genuine but constrained authentication-bypass issue that does not rise to emergency priority. The supplied CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N, base 4.8) agrees with the description: the attack is network-reachable and unauthenticated (PR:N) but rated high complexity (AC:H), consistent with the need to predict an md5(email . time()) token and with the hard precondition that the cev_user_log table carry a password column. The vuln.today decision label is this_month, not act_now/emergency, and the input contains no CISA KEV entry, no EPSS score, and no exploit/PoC reference - the only references are the Wordfence advisory and WordPress trac source lines. So exploitation status is: no public exploit identified at time of analysis. The signals are internally consistent rather than conflicting: moderate severity, no active-exploitation evidence, and a narrow precondition all point the same direction. The main caveat is coverage - EPSS and KEV data are simply absent from the input, so widespread-versus-targeted exploitation cannot be judged from the data provided; the realistic read is a medium-priority, patch-this-cycle issue most relevant to sites upgraded from older plugin versions.

Exploit ScenarioDerived

An unauthenticated attacker loads any front-end page of the shop, where wp_localize_script exposes the verify_otp_nonce, then calls the wp_ajax_nopriv_resend_otp handler to have a verification token issued for an email they choose. Because the secret_code is only md5(email . time()), the attacker can narrow and predict the token and submit it via the cusomer_email_verify GET parameter (handled with no capability or nonce check) to log in as a verified WooCommerce customer or flip an existing account's customer_email_verified meta. No public exploit code is identified in the input; the high attack complexity reflects the token-prediction and the precondition that the cev_user_log table include a password column.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Authentication bypass in the Customer Email Verification for WooCommerce plugin (all versions up to and including 2.8.2) allows unauthenticated front-end visitors to complete the plugin's email-verification step for an arbitrary address, letting them log in as a newly created verified WooCommerce customer or flip an existing account's customer_email_verified meta to verified. The bypass relies on three weaknesses chained together: the cusomer_email_verify handler performs no capability or nonce check, the secret_code it validates is generated as md5(email . time()), and the verify_otp_nonce needed to trigger token issuance is disclosed to every visitor through wp_localize_script. Severity is constrained rather than urgent: CVSS 3.1 base 4.8 (AC:H) and the trigger only works on sites where the cev_user_log table retains a password column from an older schema, which clean 2.8.2 installs do not have; no CISA KEV entry and no public exploit code were identified at time of analysis, and impact is limited to customer-level accounts rather than administrative takeover.

RemediationAI

The fix path identified in the supplied data is the plugin's 2.8.3 release, whose class-wc-customer-email-verification-signup.php file is referenced alongside the vulnerable 2.8.2 code; sites running 2.8.2 or any earlier version should move to that build, and because exploitation depends on the legacy cev_user_log.password column, upgraded sites should be prioritized over clean installs. Patch status is best described as an upstream fix available in 2.8.3 with no separate vendor patch statement included in the supplied sources, and no vendor-documented workaround is provided in the references - the Wordfence advisory and the WordPress.org developer changelog are the places to confirm the fix and any interim guidance. Until the update is applied, the only scoping fact available from the evidence is that clean 2.8.2 installations lacking the password column are not exploitable, so operators should determine whether their cev_user_log table was created by an older version before treating a site as exposed; that is a triage observation, not a documented mitigation. Per the current priority assessment this is a this-month remediation item rather than an emergency, and there is no indication of active exploitation to drive out-of-band response.

Affected VersionsENISA

Customer Email Verification for WooCommerce 0 ≤2.8.2

Affected Packages

euvd customer_email_verification_for_woocommerce no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The target is a WordPress plugin that hooks into WooCommerce's customer registration flow to force email confirmation before an account becomes usable. Two code paths interact. First, the wp_ajax_nopriv_resend_otp handler issues the verification token, and the nonce guarding that flow (verify_otp_nonce) is printed into every front-end page via wp_localize_script, so any anonymous visitor receives the value needed to call the handler. Second, authenticate_user_by_email_link() is registered on the generic wp action and is triggered by the cusomer_email_verify GET parameter; it performs neither a capability check nor a nonce verification, and it validates the supplied secret_code against md5(email . time()) - a value with a small, guessable input space rather than a cryptographically random token. Mapping to CWE-287 (Improper Authentication): the plugin verifies a claim of email ownership using a value an attacker can compute and a handler an attacker can reach, so the verification control it exists to enforce can be satisfied without access to the mailbox. A deployment-dependent precondition gates real-world exploitation: the cev_user_log table must contain a password column, which older plugin versions defined and which is absent from the fresh-install schema shipped in 2.8.2, so default clean installs of the affected version are not exploitable in practice. The high attack complexity in the assessed vector reflects this schema prerequisite plus the need to land on the predicted time-based digest, while confidentiality and integrity are both rated low because the resulting access is a customer-level session, not an administrative one.

Know when Customer Email Verification For Woocommerce gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 4.8 MEDIUM

Network-reachable and unauthenticated (AV:N/PR:N); AC:H for the time()-based token prediction plus the password-column precondition; customer-level access yields C:L/I:L and no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.3%
Top 72% exploitable
Prevalence
Low
niche WooCommerce add-on plugin, limited install base
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy