Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit unauthenticated comment with entity-encoded XSS payload
-
DeliveryBypass Kirki HTML entity decoding filter
-
ExploitPayload stored in WordPress comment database
-
ExecutionAdmin or visitor loads page rendering the comment
-
PersistJavaScript executes in victim browser session
-
ImpactHijack admin session or exfiltrate credentials
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 | The attack requires that: (1) the target WordPress site has the Kirki plugin installed and active at a version below 6.3.0; (2) unauthenticated or low-privilege user commenting is enabled on at least one post or page (default WordPress behavior); (3) a victim - ideally an administrator - views a page where the malicious comment is rendered, either directly or through a Kirki-managed header/footer component that displays recent comments. No special server configuration or non-default Kirki settings are required beyond default WordPress commenting being enabled. Exploitation is limited by the need for victim interaction (UI:R): the stored payload does not execute until a user loads an affected page. If comment moderation requires approval before display, an attacker must bypass or wait for moderation, though sites with auto-approval have no such delay. |
| Impact | The provided CVSS vector CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H scores 7.5, but AC:H appears overstated for a stored XSS: once a working payload is crafted (one-time attacker effort), delivery to victims is passive and reliable, which is characteristic of AC:L. Similarly S:U may understate risk given that an admin executing the payload can modify WordPress core settings, install plugins, or exfiltrate credentials - constituting a scope change to the broader WordPress installation. The real-world risk is elevated because: (1) exploitation requires no authentication on the injection side; (2) a public PoC (WPScan) exists, lowering attacker skill requirements; (3) site-wide impact is possible via header/footer rendering, meaning a single stored payload can fire on every page load across the entire site for every visitor. The EPSS and KEV signals are not provided in this data, but the WPScan publication and PoC availability make opportunistic exploitation credible at scale against unpatched WordPress installations. |
| Exploit ScenarioDerived | An unauthenticated attacker posts a comment to any publicly accessible WordPress page on a site running Kirki below 6.3.0, embedding a JavaScript payload encoded using an alternate HTML entity representation (e.g., hexadecimal numeric entities) that bypasses Kirki's incomplete sanitization. The comment is approved and rendered. When an administrator visits any page displaying the comment - or any page whose Kirki-managed header/footer includes comment output - the payload executes silently in the admin's browser session, enabling cookie theft, credential capture, or remote plugin installation via the WordPress REST API. A public PoC from WPScan confirms this attack path is documented. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 06, 2026
Stored cross-site scripting in the Kirki WordPress plugin before 6.3.0 allows unauthenticated remote attackers to persistently inject JavaScript into comment fields by bypassing the plugin's HTML entity decoding logic through alternate entity encodings. The malicious payload executes in the browser session of any user - including administrators - who views a page rendering the affected comment, and propagates site-wide when Kirki-managed headers or footers display comment data. A publicly available proof-of-concept exists and the vendor has released a patching fix in version 6.3.0.
RemediationAI
Upgrade the Kirki WordPress plugin to version 6.3.0 or later, which contains the vendor-released patch addressing the incomplete HTML entity sanitization. The fix is confirmed as available per the WPScan advisory (https://wpscan.com/vulnerability/e95bd1e3-6f61-423f-add6-519e1ca7bf66/) and NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-84219). As a compensating control where immediate upgrade is not possible, disable unauthenticated commenting site-wide (WordPress Settings → Discussion → uncheck 'Allow anyone to post comments') - note this prevents all anonymous comment submission as a trade-off. Alternatively, require comment author login (Settings → Discussion → 'Users must be registered and logged in to comment'), reducing the attack surface to authenticated users only. Do not rely on WAF rules alone, as entity-encoding bypass techniques are varied and filter evasion is the documented root cause.
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
Kirki is a WordPress customizer framework plugin used by theme developers to build option panels and render dynamic content including user-supplied data. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) stems from incomplete HTML entity decoding sanitization: the plugin decodes some entity representations but fails to normalize all valid spellings (e.g., decimal vs. hexadecimal vs. named entity variants) before output encoding, leaving a filter-bypass window. The affected product is identified via CPE as cpe:2.3:a:unknown:kirki:*:*:*:*:*:*:*:* covering all versions prior to 6.3.0. The WordPress comment pipeline provides the unauthenticated injection surface.
Know when Kirki 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:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Stored XSS delivery is reliable once payload is crafted (AC:L); admin session hijack constitutes scope change (S:C); no privileges needed to post comment (PR:N).
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
4DescriptionCVE.org
The Kirki WordPress plugin before 6.3.0 does not hold back every spelling of the HTML entities it decodes when rendering, allowing unauthenticated users to store JavaScript in a comment which then runs in the session of anyone viewing a page that displays it, including an administrator, and on every page of the site when its header or footer is built to show comments.
Technical POC Analysis
CWE-79: Stored Cross-Site Scripting.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Kirki WordPress plugin versions before 6.3.0 contain a stored cross-site scripting vulnerability that allows unauthenticated attackers to inject persistent malicious code into site comments, which then executes for all users viewing those comments, including administrators. This enables attackers to compromise administrative accounts and propagate malicious scripts across the entire site. Publicly available exploit code exists for this vulnerability, making organizations running vulnerable versions of WordPress sites with Kirki a direct target.
Apply vendor patch.
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.
Server-Side Request Forgery in the Kirki WordPress plugin before 6.0.12 allows unauthenticated attackers to coerce the s
SQL injection in the Kirki WordPress plugin before version 6.0.13 enables unauthenticated remote attackers to read arbit
Broken access control in the Themeum Kirki WordPress customizer framework (versions up to and including 6.0.13) allows r
PHP Object Injection in the Kirki WordPress plugin before 6.0.13 enables a two-stage attack where unauthenticated users
Arbitrary file upload via malformed archive in the Kirki WordPress customizer plugin (all versions before 6.2.3) allows
Stored cross-site scripting in the Kirki WordPress plugin affects versions 6.0.0 through 6.3.0, which allow SVG files to
SQL injection in the Kirki WordPress plugin (versions 6.0.0 through <6.3.0) enables authenticated users with editor-leve
Unauthenticated shortcode injection in Kirki WordPress plugin (all versions before 6.2.1) allows any remote attacker to
Object injection in the Themeum Kirki WordPress customizer framework (all versions through 6.0.12) allows attackers to a
Blind SQL injection in the Themeum Kirki WordPress customizer framework (all versions up to and including 6.0.12) lets r
Kirki WordPress Customizer Framework plugin before 6.0.14 exposes registered user email addresses, comment author emails
Unauthenticated content disclosure in the Kirki WordPress plugin before 6.3.0 allows any remote attacker to retrieve the
EUVD-2026-72065
GHSA-5jh7-hrj4-qc2f
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB