Skip to main content

WebToffee Export Import CVE-2026-104368

| EUVDEUVD-2026-113707 HIGH
Improper Encoding or Escaping of Output (CWE-116)
2026-10-30 Wordfence GHSA-9339-975x-grvq
8.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as Subscriber-level user
  2. Delivery
    Store backslash-quote newline payload in Biographical Info
  3. Exploit
    Administrator exports and re-imports users CSV
  4. Execution
    Mismatched escape parsing splits field into extra row
  5. Impact
    hf_create_customer() provisions attacker-controlled Administrator account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
Exploitation Conditions

Requires an authenticated account at Subscriber level or above (PR:L) so the attacker can write a crafted value into the Subscriber's Biographical Info field - specifically a backslash-quote sequence followed by a newline that exploits the mismatch between fputcsv() (backslash escape) in class-csvwriter.php and fgetcsv() (double-quote escape) in class-csvreader.php. Exploitation does NOT complete on its own: it additionally requires a privileged operator to run the plugin's own export workflow and then re-import the generated CSV, at which point the injected second row is processed by hf_create_customer(). The main limiting factors are therefore (1) attacker must obtain at least Subscriber access, and (2) an administrator must actually perform the export-then-re-import cycle on the affected data; sites that never round-trip exported user data back through import are not exposed.

Impact

This is a genuine but conditional privilege-escalation issue rather than a drop-everything emergency. The CVSS 3.1 base score of 8.8 (AV:N/AC:L/PR:L/UI:N) reflects full confidentiality, integrity, and availability loss because successful exploitation yields an attacker-controlled Administrator account. However, several decision signals temper the raw score: no EPSS probability is supplied, the CVE is not on CISA KEV, and no public exploit is identified in the input, so this is not confirmed in-the-wild activity. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a serious-but-not-actively-exploited flaw. The most important nuance is a likely gap in the provided CVSS vector: it lists UI:N, yet the described mechanism only triggers when a privileged operator runs the plugin's export AND then re-import workflow over the file containing the malicious data - that is effectively privileged user interaction, which materially narrows real-world exploitability versus a pure remote-unauthenticated bug. Net: a real, patch-this-week priority for sites running this plugin with open or low-trust registration, but not a wormable mass-exploitation scenario on current evidence.

Exploit ScenarioDerived

An attacker who holds (or self-registers for) a Subscriber account stores a crafted backslash-quote-plus-newline sequence in their Biographical Info field. Later, when an administrator uses the plugin to export users to CSV and then re-imports that CSV, the escape-character mismatch between the writer and reader splits the field into a second row, which hf_create_customer() processes as a brand-new account with attacker-chosen login, password, email, and the Administrator role. No public exploit code is identified at time of analysis, but the description documents the trigger precisely.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 30, 2026

Privilege escalation in the WebToffee 'Export and Import Users and Customers' plugin for WordPress (all versions up to and including 2.7.5) lets any authenticated user with Subscriber-level access or above plant a crafted value in the Biographical Info field that is later reinterpreted as a second CSV row during import, creating a brand-new account whose login, password, e-mail and role are fully attacker-chosen - including Administrator. Exploitation is conditional rather than automatic: the payload only detonates when a privileged operator runs the plugin's own export and then re-imports the generated file, so sites that never round-trip exported user data back through the importer are not exposed. No public exploit code or confirmed in-the-wild activity was identified at the time of analysis, but the 8.8 severity and the low Subscriber-level prerequisite make this a this-week remediation priority for any site that uses the plugin's export/import cycle.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - the vendor's public fix is changeset 3741112 at https://plugins.trac.wordpress.org/changeset/3741112/users-customers-import-export-for-wp-woocommerce, so check the plugin's changelog for the first tagged release built on that changeset and upgrade to it rather than remaining on 2.7.5 or earlier. Because exploitation is not autonomous - the independent assessment confirms it needs both a Subscriber-level account and an administrator to run the export and then re-import the resulting file - the highest-value compensating control is to stop round-tripping user exports through the plugin's importer until a patched build is confirmed installed; sites that never feed exported user data back into the import workflow are not exposed. Where the export/import cycle is business-critical, reduce the attack surface by limiting who can hold Subscriber-or-higher accounts on the site (self-registration and comment-based account creation included, since the crafted payload lives in Biographical Info), and inspect the resulting user list for unexpected Administrator accounts immediately after any import. Restricting the import screen to a short list of trusted administrators and auditing every account created by hf_create_customer() after a bulk import adds detection without changing the vulnerable parsing itself, so it is a stopgap, not a substitute for the fixed build.

Affected VersionsENISA

Export and Import Users and Customers 0 ≤2.7.5

Affected Packages

euvd export_and_import_users_and_customers 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 flaw is a CSV dialect mismatch between two halves of the same plugin workflow (CWE-116, improper encoding/escaping of output). The exporter in admin/classes/class-csvwriter.php (around line 154) writes cells with PHP's fputcsv(), which by default uses a backslash (\) as the escape character, while the importer in admin/classes/class-csvreader.php (around line 197) reads the same file with fgetcsv() configured with a double-quote (") as its escape character. Because the two functions disagree about what an escape character means, a value containing a backslash-quote sequence followed by a newline is serialized as one quoted field by the writer but re-tokenized as two separate rows by the reader. The user export path (admin/modules/user/export/export.php, around line 560) is what places the Subscriber's Biographical Info into that cell, and the user import path (admin/modules/user/import/import.php, around line 490) hands the injected second row to hf_create_customer(), which treats it as a legitimate new user record with attacker-supplied user_login, user_pass, user_email and role. WordPress itself behaves correctly here; the defect is entirely in the plugin's choice of inconsistent escape parameters, so any extension that reuses these classes inherits the same parsing ambiguity.

Know when Export And Import Users And Customers 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 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.0 HIGH

Attacker needs only Subscriber access (PR:L) over the network (AV:N), but a privileged operator must run the export/re-import workflow for the payload to fire, so UI:R; creating an admin yields C:H/I:H/A:H.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The Export and Import Users and Customers plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.7.5 via the plugin's own export and re-import workflow. The vulnerability exists because of a CSV escape-character mismatch between the exporter and the importer: class-csvwriter.php writes cells with fputcsv() using PHP's default backslash (\) escape character, while class-csvreader.php parses the same file with fgetcsv() using a double-quote (") as the escape character. As a result, a crafted value stored in a Subscriber's Biographical Info field - containing a backslash-quote sequence followed by a newline - is written as a single quoted CSV field but parsed back as two separate rows on import. The injected second row is then processed by hf_create_customer() as a new user record whose user_login, user_pass, user_email, and role are entirely attacker-controlled, allowing the creation of an arbitrary Administrator account. This makes it possible for authenticated attackers with Subscriber-level access and above to escalate their privileges to Administrator.

Executive ViewAI

Why It Matters

CVE-2026-104368 is a high-severity privilege escalation in the WebToffee Export and Import Users and Customers plugin for WordPress (versions up to 2.7.5). Any authenticated user with Subscriber-level access can inject a crafted value into the Biographical Info field that, when a privileged operator later exports and re-imports user data, creates a new account with attacker-chosen credentials, including Administrator. This puts all WordPress sites using the plugin at risk of full compromise, making it a priority for leadership to address within the week.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable the plugin on all sites where it is not essential; restrict use of the export/import feature to trusted administrators and avoid re-importing exported user data unless absolutely necessary; audit Subscriber-level accounts and remove any that are unnecessary; monitor for unusual account creation or privilege changes.

Threat Intelligence Overview

EPSS Score
0.3%
Top 72% exploitable
Prevalence
Medium
WebToffee WordPress import/export plugin with a moderate but not universal install base
Social Media
1
Sightings
Data Quality
5 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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