CVE-2026-102173 json
Kirki – Freeform Page Builder, Website Builder & Customizer <= 6.3.1 - Unauthenticated Stored Cross-Site Scripting via Registration Metadata
published 2026-10-07 33 d ago modified 2026-10-07 32 d ago also EUVD-2026-94167
- cvss
- 7.2
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 30%
- public exploits
- 0
- none known
Summary
The Kirki – Freeform Page Builder, Website Builder & Customizer plugin for WordPress is vulnerable to Stored Cross-Site Scripting via registration metadata in all versions up to, and including, 6.3.1 This is due to insufficient escaping in `ExceptionalElements::image_element()`, which concatenates a user-meta value straight into an `<img src="…">` attribute. This makes it possible for unauthenticated attackers to inject arbitrary web scripts that execute whenever a user accesses a page rendering a Kirki users collection whose image element is bound to one of the nine registration meta fields. Requires public user registration to be enabled and a published page carrying a `kirki-register` element, which prints the required element nonce into the public markup.
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 32 d ago
Exploit prediction
0.37% chance of exploitation in the next 30 days, higher than 30% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
Affected products
- themeum Kirki – Freeform Page Builder, Website Builder & Customizer
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
- Technology feeds
References
- wordfence.com /threat-intel/vulnerabilities/id/368001e9-3806-41d5-902e-0facf7fb31ff?source=cve
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/includes/Frontend/Preview/ExceptionalElements.php#L1184
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/includes/Frontend/Preview/ExceptionalElements.php#L1079
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/includes/HelperFunctions.php#L1151
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/ComponentLibrary/controller/CompLibFormHandler.php#L361
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/ComponentLibrary/controller/CompLibFormHandler.php#L389
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/ComponentLibrary/controller/CompLibFormHandler.php#L76
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/ComponentLibrary/controller/ElementGenerator.php#L259
- plugins.trac.wordpress.org /browser/kirki/tags/6.3.1/includes/Frontend/Preview/Utils.php#L308
- plugins.trac.wordpress.org /changeset?reponame=&new=3718900%40kirki%2Ftags%2F6.3.2&old=3697265%40kirki%2Ftags%2F6.3.1
- plugins.trac.wordpress.org /changeset/3718900/kirki/trunk/includes/Frontend/Preview/ExceptionalElements.php
Sources
- CVE List CVE-2026-102173
- NVD CVE-2026-102173
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.