| Plugin Name | YouTube Embed, Playlist and Popup by WpDevArt |
|---|---|
| Type of Vulnerability | Cross-Site Scripting (XSS) |
| CVE Number | CVE-2025-2537 |
| Urgency | Low |
| CVE Publish Date | 2026-01-30 |
| Source URL | CVE-2025-2537 |
CVE-2025-2537 — Stored DOM-Based XSS in “YouTube Embed, Playlist and Popup by WpDevArt” (≤ 2.6.7) — What WordPress Site Owners Need to Do Right Now
By: Hong Kong Security Expert Date: 2026-01-30
Summary
A security issue affecting the WordPress plugin “YouTube Embed, Playlist and Popup by WpDevArt” (versions ≤ 2.6.7) has been disclosed (CVE‑2025‑2537). The vulnerability is a stored, DOM‑based Cross‑Site Scripting (XSS) that can be introduced by a user with Contributor privileges and executed later in other users’ browsers when they view the affected content. The root cause is unsafe handling of content related to a bundled ThickBox JavaScript library that performs DOM insertion without proper output encoding or sanitization.
- Affected plugin: YouTube Embed, Playlist and Popup by WpDevArt
- Vulnerable version: ≤ 2.6.7
- Vulnerability type: Stored DOM‑based Cross‑Site Scripting (XSS)
- CVE: CVE‑2025‑2537
- Required privilege to exploit: Contributor
- CVSS (reported): 6.5
- Fix: No upstream fixed version available at time of publication — site owners must apply mitigations now
As a Hong Kong security practitioner, I provide a clear, pragmatic explanation of the risk, how this vulnerability class operates, how to detect signs of misuse, immediate mitigations you can apply, and longer‑term hardening steps for developers and site owners.
Why this matters
Contributor accounts are frequently used on multi‑author sites. Although Contributors cannot publish, stored XSS that executes when another user (editor, admin, or visitor) views content can lead to account takeover, persistent site compromise, data theft, malicious redirects, SEO spam, and more. Stored payloads persist in the database and execute repeatedly in victims’ browsers.
Bundled legacy JavaScript libraries (such as an outdated ThickBox) or improper client‑side DOM insertion increase the attack surface. Even when PHP sanitization appears adequate, unsafe client‑side DOM manipulations (e.g., innerHTML) can render encoded or sanitized HTML unsafe at render time.
How the vulnerability works (high level, non‑exploitative)
- A user with Contributor privileges creates plugin content (shortcodes, options, gallery metadata, or other stored fields) that includes malicious values.
- The plugin uses a bundled ThickBox JavaScript library to assemble and display HTML content in a dialog, inserting parameters into the DOM via innerHTML or similar APIs without proper encoding.
- The malicious payload is stored in the database. When another user opens the dialog, the ThickBox code executes and the browser interprets the injected script, producing a persistent client‑side vector.
Key point: this vulnerability depends on inserting untrusted data into the DOM in execution‑capable contexts (script tags, event handler attributes, etc.). The root cause is client‑side DOM manipulation without context‑appropriate encoding.
Who can exploit this and potential impacts
- Attacker needs an account with Contributor privileges (or higher).
- No initial compromise of admin credentials is required.
- Payload execution requires another user (admin/editor/visitor) to view the content, sometimes requiring minimal interaction.
- Possible impacts include:
- Session cookie or token theft (if cookies lack HttpOnly/secure protections).
- Actions performed on behalf of victims (if CSRF protections are insufficient).
- Persistent spam or malicious content insertion.
- Planting of administrative backdoors after privilege escalation.
- Loading of remote malware or cryptominers for visitors.
Because this plugin handles third‑party embeds and popups, an exploit can appear normal to end users and be difficult to spot.
Detection — what to look for
If your site uses the affected plugin, perform these checks immediately:
- Identify plugin version:
- In WP admin → Plugins, check plugin version; or
- Search filesystem: look for plugin folder
youtube-video-playerand read itsreadme.txtor main plugin file.
- Search for ThickBox assets:
- Check for
thickbox.js,thickbox.css, or related scripts inside the plugin directory. - Example (SSH):
grep -R "thickbox" wp-content/plugins/youtube-video-player -n
- Check for
- Scan the database for suspicious content in posts, metas, or options: