Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Contributor-level WordPress credentials
-
DeliveryAuthor post with URL embed token pointing to attacker server
-
ExploitSubmit post for editorial review
-
ExecutionAdministrator opens post preview or review screen
-
PersistPlugin fetches attacker-controlled URL without sanitization
-
ImpactAttacker JavaScript executes in authenticated admin browser session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a Contributor-level (or higher) WordPress account on the target site; unauthenticated or subscriber-level users cannot exploit this vulnerability. The Code Embed plugin must be installed, active, and running version 2.6.x prior to 2.6.1-the external URL embed feature introduced in version 2.6 is the specific vector, not the legacy custom-field path addressed by CVE-2026-2512 in versions up to 2.5.1. Exploitation further depends on an Administrator or Editor actively previewing or reviewing the attacker's submitted post (UI:R); without this user interaction, the stored payload cannot trigger. Sites restricting Contributor registration, running only trusted contributor accounts, or operating without an editorial review workflow for contributor content have significantly reduced realistic exposure regardless of patch status. |
| Impact | The provided CVSS 3.1 vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L (score 6.5) accurately captures the attack topology-network-reachable, low complexity, low privileges (Contributor), with mandatory administrator interaction and a scope change into the reviewing user's browser context. The Scope:Changed rating is the most consequential signal here: XSS executing in an authenticated admin session can cascade into full site compromise via admin account creation, plugin installation, or theme file modification, effects far exceeding the C:L/I:L base ratings. No EPSS data was supplied in the intelligence inputs and this CVE does not appear in CISA KEV, moderating urgency; however, stored-XSS-targeting-admin patterns in WordPress plugins are a historically active exploitation category, so the absence from KEV reflects novelty rather than low attacker interest. The binding constraint is the Contributor-role prerequisite: sites with no open registration, no untrusted Contributor accounts, or where contributor posts bypass the editorial review workflow are realistically unexploitable regardless of patch status. The fix is confirmed released. |
| Exploit ScenarioDerived | An attacker registers or obtains a Contributor-level WordPress account on the target site, then authors a post containing a URL embed token pointing to an attacker-controlled server configured to return a JavaScript payload-such as a script that creates a rogue admin account or exfiltrates session cookies. The attacker submits the post for editorial review; when an Administrator or Editor opens the post preview or review screen, the Code Embed plugin fetches the malicious URL and injects the returned JavaScript into the rendered page, executing it in the authenticated admin browser session with full privileges. No public exploit code has been identified at time of analysis, but the attack is straightforward to reproduce from the advisory and commit diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 07, 2026
Stored XSS in the Code Embed WordPress plugin (versions prior to 2.6.1) permits a Contributor-role attacker to plant a URL embed token referencing an attacker-controlled server; when an Administrator or Editor previews or reviews the pending post, the plugin fetches the remote URL and injects the unfiltered response body-including arbitrary JavaScript-directly into the rendered page. The root cause is a dual omission in add-embeds.php: no output sanitization on fetched remote content and no unfiltered_html capability check before URL-embed expansion, a pattern confirmed by the commit diff from the fix release. No public exploit has been identified at time of analysis; vendor-released patch 2.6.1 is confirmed by a GitHub release tag, a commit, and the plugin changelog.
RemediationAI
Upgrade Code Embed to version 2.6.1, the vendor-released patch confirmed by the GitHub release at https://github.com/dartiss/code-embed/releases/tag/2.6.1 and commit 399752029c62fea82a9bc13fd156713fb4d50ea8. If immediate upgrade is not possible, the most effective compensating control is to audit and remove unnecessary Contributor-role accounts, eliminating the attacker foothold entirely; this has no functional side effect for sites with controlled contributor lists. A secondary control is to avoid previewing or reviewing posts from untrusted Contributor accounts until the patch is applied, though this disrupts normal editorial workflows. Site administrators should also inspect existing pending posts authored by Contributors for URL embed tokens (typically formatted as plugin-specific shortcodes or tokens referencing external domains) before opening them in preview or review mode, since stored payloads persist until removed.
Affected VersionsENISA
Affected Packages
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 Code Embed plugin (CPE: cpe:2.3:a:dartiss:code-embed) provides a WordPress token mechanism that embeds external code snippets into post content by specifying a remote URL. The vulnerable code path in includes/add-embeds.php called ce_quick_replace() unconditionally for both HTTP and HTTPS URL tokens, fetching the remote resource and inserting the raw response body into $content via str_replace() without any sanitization. This is a textbook CWE-79 (Improper Neutralization of Input During Web Page Generation) violation: user-controllable data-the URL itself and the remote server's arbitrary response-entered the output stream directly. WordPress's role-capability model reserves the unfiltered_html capability for Administrators and Editors; Contributors explicitly lack it. The plugin failed to gate URL-embed expansion on this capability, so Contributor-authored posts could carry URL tokens that execute attacker-controlled content when rendered by any higher-privileged reviewer. The fix introduces two complementary controls: a save_post hook (ce_save_url_embed_permission) that stamps the post with a meta flag recording whether the post author held unfiltered_html at save time, and a runtime gate that suppresses URL-embed expansion for posts lacking that flag; fetched content is additionally passed through wp_kses_post() for sanitization.
Know when Code Embed 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
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
Contributor account required (PR:L); admin must actively preview post (UI:R); JavaScript executes in admin browser session causing scope change (S:C); no direct availability impact from XSS itself.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
The Code Embed WordPress plugin prior to version 2.6.1 is vulnerable to stored Cross-Site Scripting (XSS) through the external URL embed feature in post content. The vulnerable code scans rendered content for URL embed tokens, fetches the remote URL, and inserts the remote response body into the page without output sanitization or an unfiltered_html capability check. This allows a Contributor attacker to submit a pending post containing an inert-looking URL token that executes attacker-controlled JavaScript when an Administrator or Editor previews or reviews the post. This is distinct from CVE-2026-2512, which affected custom field meta values up to version 2.5.1. This vector affects version 2.6 and uses the documented external URL embed feature in post content. This particular issue is patched in version 2.6.1.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Code Embed
View allA vulnerability in David Artiss Code Embed simple-embed-code.3.6. Rated medium severity (CVSS 6.5), this vulnerability i
The Code Embed plugin for WordPress (versions up to 2.5.1) contains a stored cross-site scripting vulnerability that all
The Code Embed plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's script embed functiona
EUVD-2026-54510
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB