Description
The ElementsKit Pro plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 's' parameter of the Advanced Search REST endpoint in all versions up to, and including, 4.10.1 due to insufficient input sanitization and output escaping. The REST endpoint at /wp-json/elementskit/v1/advanced-search uses permission_callback set to __return_true, allowing unauthenticated access. Search terms are stored in the ekit_advanced_search_popular_keyword WordPress option via update_option(). While sanitize_text_field() is applied, it does not encode double quotes, and the stored keywords are rendered in HTML attributes via sprintf without esc_attr(), allowing attribute injection. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user triggers the "no results" popular keywords view on pages using the Advanced Search widget.
Published: 2026-08-28
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerable ElementsKit Pro plugin exposes a REST endpoint that accepts the ‘s’ search term without proper escaping. Though sanitize_text_field() is called, it fails to encode double quotes. The supplied value is later rendered inside an HTML attribute via sprintf, bypassing esc_attr(), and stored in the ekit_advanced_search_popular_keyword option. An attacker can therefore persist malicious code that is executed whenever a user triggers the no‑results popular‑keywords view in a page that includes the Advanced Search widget. This enables script payloads that can steal cookies, hijack sessions, or modify page content, impacting confidentiality, integrity, and availability of the site. The vulnerability is a typical example of CWE‑79: Improper Neutralization of Input During Web Page Generation.

Affected Systems

ElementsKit Pro for WordPress, version 4.10.1 and earlier, all installations that enable the Advanced Search widget. The flaw exists in the /wp-json/elementskit/v1/advanced-search REST endpoint where permission_callback is set to __return_true, allowing any unauthenticated user to submit search terms. Sites using older ElementsKit Pro versions should be reviewed for deployment of the plugin.

Risk and Exploitability

The CVSS base score is 6.1, indicating medium severity. The EPSS score is <1%, and the issue is not listed in the CISA KEV catalog. The flaw is exploitable without authentication via the public REST API; the attacker only needs to send a crafted request containing an XSS payload. Once stored, the malicious content will be displayed to any visitor who activates the populated keyword view, giving the exploit a wide attack surface across the entire site. The straightforward attack path and lack of privileged prerequisites make this a realistic threat for sites running affected plugin versions.

Generated by OpenCVE AI on August 28, 2026 at 15:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to ElementsKit Pro version 4.10.2 or newer, where input sanitization and escaping are corrected for the ‘s’ parameter in the advanced‑search REST endpoint.
  • If upgrading is not immediately possible, disable or remove the Advanced Search widget from all pages (or block the endpoint via a plugin or wp-config setting) to prevent rendering of stored keywords.
  • Clean any existing malicious entries in the ekit_advanced_search_popular_keyword option using WP‑CLI or the database, ensuring only properly escaped content remains.
  • Add a Content Security Policy header to restrict script execution and reduce impact of potential XSS.

Generated by OpenCVE AI on August 28, 2026 at 15:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description The ElementsKit Pro plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 's' parameter of the Advanced Search REST endpoint in all versions up to, and including, 4.10.1 due to insufficient input sanitization and output escaping. The REST endpoint at /wp-json/elementskit/v1/advanced-search uses permission_callback set to __return_true, allowing unauthenticated access. Search terms are stored in the ekit_advanced_search_popular_keyword WordPress option via update_option(). While sanitize_text_field() is applied, it does not encode double quotes, and the stored keywords are rendered in HTML attributes via sprintf without esc_attr(), allowing attribute injection. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user triggers the "no results" popular keywords view on pages using the Advanced Search widget.
Title ElementsKit Pro <= 4.10.1 - Unauthenticated Stored Cross-Site Scripting via 's' Parameter
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-08-28T15:56:07.074Z

Reserved: 2026-03-15T23:03:47.576Z

Link: CVE-2026-4246

cve-icon Vulnrichment

Updated: 2026-08-28T14:32:58.006Z

cve-icon NVD

Status : Deferred

Published: 2026-08-28T08:16:40.850

Modified: 2026-08-28T20:17:39.897

Link: CVE-2026-4246

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T16:00:15Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')