CVE-2026-102291

Kirki – Freeform Page Builder, Website Builder & Customizer <= 6.3.1 - Authenticated (Subscriber+) Arbitrary Shortcode Execution via 'display_name'

2026-10-09 18:47
Jacek Sowiński (dzaku)

Strategic Overview

Status
Patched in 6.3.2
Affected Version
<= 6.3.1
CVSS
5.4Medium
Weakness type
CWE-74 · Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')
CVE
CVE-2026-102291
View all Kirki – Freeform Page Builder, Website Builder & Customizer vulnerabilities

At a glance

CVE-2026-102291 is a medium-severity Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') vulnerability in the Kirki WordPress plugin, affecting versions <= 6.3.1. It carries a CVSS score of 5.4 (reachable over the network; low attack complexity). Exploitation requires an authenticated account at Subscriber level or above. The issue is fixed in version 6.3.2; sites on affected versions should update now. Disclosed October 2026, reported by Jacek Sowiński (dzaku).

Vulnerability Overview

The Kirki – Freeform Page Builder, Website Builder & Customizer plugin for WordPress is vulnerable to arbitrary shortcode execution in all versions up to, and including, 6.3.1 This is due to the plugin substituting a user's `display_name` into the composed page markup unfiltered and then running the whole result through `do_shortcode()` in `TheFrontend::replace_content()`. Because `display_name` is writable by any user on their own account through the core profile form, this makes it possible for authenticated attackers with Subscriber-level access and above to execute arbitrary shortcodes. Where the page is a users collection — an ordinary team or member-directory page — the shortcode runs in the request of every visitor, including unauthenticated ones. Requires a published page with a Kirki element whose dynamic content is bound to the `display_name` user field.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user.

CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.

Remediation

Update to version 6.3.2, or a newer patched version

How does WordSec protect against this?

An attacker needs Subscriber access first, so the firewall sees the attempt as traffic from a logged-in account: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: Kirki 6.3.2 closes this, and updating the plugin is the step that ends it.

  • Firewall
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C