| Plugin Name | Digiseller |
|---|---|
| Type of Vulnerability | Stored XSS |
| CVE Number | CVE-2025-10141 |
| Urgency | Low |
| CVE Publish Date | 2025-10-15 |
| Source URL | CVE-2025-10141 |
Urgent: Digiseller <=1.3.0 — Authenticated Contributor Stored XSS (CVE-2025-10141) — What WordPress Site Owners Need to Know
Date: 2025-10-16
Author: Hong Kong security researcher
If your WordPress site uses the Digiseller plugin (version 1.3.0 or earlier), this advisory requires immediate attention. A stored cross-site scripting (XSS) vulnerability (CVE-2025-10141) allows an authenticated user with Contributor privileges (or higher) to store JavaScript payloads that may execute in contexts viewed by other authenticated users or visitors.
Executive summary (TL;DR)
- Vulnerability: Stored Cross‑Site Scripting (XSS) in Digiseller plugin (≤ 1.3.0)
- CVE: CVE-2025-10141
- Privilege required: Contributor (authenticated)
- Impact: Persistent XSS. Injected JavaScript can execute in other users’ browsers, enabling cookie/session theft, privileged actions performed via the victim’s session, content tampering, or further persistence.
- Official patch: Not available at time of publication. Apply vendor patches immediately when released.
- Immediate actions: Restrict Contributor role, audit content and plugin data, consider disabling the plugin until patched, enable relevant WAF/virtual patching rules if available, monitor logs, rotate credentials if compromise is suspected, and scan for malware.
What is stored XSS and why an authenticated Contributor matters
Stored (persistent) XSS occurs when untrusted input is stored by an application and later rendered in a user’s browser without proper sanitization or encoding. This is particularly dangerous when rendered in admin contexts because privileged users (Editors or Administrators) may unknowingly trigger the payload.
Key points:
- An attacker needs an authenticated account (Contributor or higher).
- Contributors often submit drafts, product descriptions, or other content which privileged users view during review or publishing workflows.
- If a privileged user opens content that contains a stored XSS payload, that payload runs in the context of the privileged user’s browser and may perform privileged actions or exfiltrate data.
Vulnerability details (high-level, non‑exploitative)
- A Digiseller input field or endpoint (e.g., product description, widget content) does not sufficiently sanitize or encode HTML/JS input.
- A Contributor can submit crafted input containing script or event handler attributes that the plugin stores in the database.
- When the stored content is rendered in admin screens or on the front end, the injected script executes in viewers’ browsers.
Publication of exploit code or exact payloads is intentionally omitted to avoid enabling attackers.
Realistic exploitation scenarios
- Approvals and publishing workflow: A Contributor submits content with a hidden script. An Editor opens the draft and the script executes, enabling actions like creating an admin user or exfiltrating session data.
- Dashboard widgets and previews: Stored content shown in admin widgets or preview panes can trigger payloads when administrators view those pages.
- Front-end persistence: If published, the payload can affect site visitors, enabling mass redirects, advert insertion, cryptojacking, or credential capture.
- Chained attacks (XSS → CSRF): XSS can be combined with forged requests to change settings, install backdoors, or escalate privileges.
How to detect if your site is targeted or already compromised
Look for these indicators:
- Unexpected posts, products, or widget content authored by Contributor accounts.
- Script tags or inline event handlers in wp_posts.post_content, wp_postmeta, Digiseller plugin tables, or wp_options entries.
- Admin users reporting unexpected popups, redirects, or odd dashboard behavior.
- Outbound HTTP connections to unknown domains originating from the site.
- Creation of new admin users or changes to admin contact emails without authorization.
- Unknown scheduled tasks (wp_cron entries), unfamiliar plugins/themes, or modified files under wp-content.
- Traffic spikes to admin pages or REST API endpoints corresponding to content creation or viewing.
Suggested places to audit:
- Database: wp_posts.post_content, wp_postmeta, and plugin-specific tables for Digiseller.
- Plugin option rows in wp_options.
- Server access and application logs — look for POSTs submitting suspicious content.
- Reports from administrators’ browsers — console errors, unexpected network calls.
Immediate mitigation steps (priority-based)
1. Containment (first 1–2 hours)
- Disable the Digiseller plugin from the Plugins page or by renaming the plugin folder via SFTP (e.g., wp-content/plugins/digiseller → wp-content/plugins/digiseller_disabled). Disabling stops vulnerable code from executing.
- If disabling is not immediately possible, restrict access to admin pages: use IP allowlisting for /wp-admin or enforce HTTP basic auth on /wp-admin and /wp-login.php.
2. Reduce attacker capability
- Temporarily change the default new-user role to Subscriber or disable new registrations.
- Audit Contributor accounts and temporarily reduce their privileges until verified clean.
- Force logout of all sessions and rotate shared passwords and API tokens if compromise is suspected.