MEDIUM 6.4

CVE-2026-10089: Insert Pages WordPress Plugin Stored XSS via Meta Keys

The Insert Pages plugin for WordPress has a security flaw where it fails to properly clean user-supplied text before displaying it on web pages. Specifically, when an author or administrator creates a custom field (metadata) with a specially crafted name and inserts a page using the plugin's shortcode, that malicious field name gets displayed without protection. This allows attackers to inject JavaScript code that runs in the browsers of anyone viewing the affected page. The vulnerability requires an authenticated account with author-level permissions or higher to exploit, which limits the immediate risk but still represents a meaningful threat in environments where multiple content creators have access.

Source data · NVD / CISA · public domain

CVSS
3.1 · 6.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Weaknesses (CWE)
CWE-79
Affected products
0 configuration(s)
Published / Modified
2026-07-02 / 2026-07-02

NVD description (verbatim)

The Insert Pages plugin for WordPress is vulnerable to Stored Cross-Site Scripting via post custom field keys (meta key names) in all versions up to, and including, 3.11.4. This is due to insufficient output escaping in the the_meta() function: while the custom field VALUE is sanitized with wp_kses_post(), the custom field KEY ($key) is interpolated into the rendered HTML (lines 1786-1791) and echoed (line 1806) without any escaping when an inserted page is rendered with the [insert page='ID' display='all'] shortcode. This makes it possible for authenticated attackers, with author-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-10089 is a Stored Cross-Site Scripting (XSS) vulnerability in the Insert Pages plugin affecting all versions through 3.11.4. The vulnerability exists in the the_meta() function, specifically at lines 1786–1791 and 1806, where custom field meta keys are directly interpolated into HTML output without escaping. While the plugin correctly sanitizes custom field values using wp_kses_post(), the key names themselves are echoed unescaped. When a page is rendered using the [insert page='ID' display='all'] shortcode, an attacker-controlled key name can inject arbitrary HTML and JavaScript. The vulnerability is classified as Stored XSS because the malicious payload persists in the WordPress database as post metadata and executes each time the affected page is accessed.

Business impact

This vulnerability could compromise the integrity of web content and user trust. An authenticated attacker could inject malicious scripts that steal session tokens, redirect visitors to phishing sites, deface page content, or harvest sensitive information from site visitors. For multi-author WordPress installations—particularly publishing platforms, agencies, and collaborative content environments—this represents a supply-chain style risk where a compromised or malicious team member can poison content at scale. The attack surface depends on how broadly author-level access is distributed within an organization.

Affected systems

The Insert Pages plugin for WordPress in all versions up to and including 3.11.4 is vulnerable. The risk is confined to WordPress installations that have the Insert Pages plugin active and in use. Exploitation requires an authenticated account with author-level permissions or above (author, editor, or administrator roles). Sites that restrict author access to a small, trusted group face lower risk than those with many content contributors.

Exploitability

Exploitability is moderate. An attacker must already possess authenticated WordPress access at the author level or higher—a non-trivial barrier that eliminates purely external attacks. However, the attack vector is network-accessible and requires no special user interaction beyond normal page visits by other site users. The CVSS score of 6.4 (Medium) reflects this: direct network access combined with authenticated scope-crossing (the attack affects other users viewing the page) but limited impact (confidentiality and integrity, not availability). Insider threat scenarios and compromised contributor accounts pose the highest risk.

Remediation

Update the Insert Pages plugin to a patched version released after July 2, 2026. Verify the specific patch version number in the official WordPress plugin repository or the vendor's security advisory. Until a patch is available, consider disabling the Insert Pages plugin if not actively required, or restrict author-level access to a minimal, trusted set of users. Additionally, audit existing custom field meta keys for any suspicious patterns that might indicate prior compromise.

Patch guidance

Check the WordPress plugin repository or the plugin vendor's website for a security update released after July 2, 2026. Apply the update through the WordPress admin dashboard (Plugins > Installed Plugins > Insert Pages > Update). After patching, verify no new versions of the plugin are released within the next 48 hours to confirm no regression. If the plugin does not update to a version later than 3.11.4, contact the plugin maintainers for a timeline. For organizations using Software-as-a-Service WordPress hosting, coordinate with your platform provider to ensure timely patching.

Detection guidance

Search WordPress post metadata for suspicious custom field key names that contain script tags, event handlers (onclick, onerror, etc.), or encoded JavaScript. Use WordPress database queries to inspect postmeta table entries with suspicious meta_key values. Monitor access logs for pages using the [insert page] shortcode for unusual request patterns. Implement Web Application Firewall (WAF) rules to block requests containing obvious XSS payloads in parameter values. For more sophisticated detection, review page edit history in WordPress audit logs to identify when meta keys with suspicious naming patterns were created and by which user accounts.

Why prioritize this

While the CVSS score is Medium (6.4) and the vulnerability requires authenticated access, the combination of stored persistence, scope crossing, and prevalence of multi-author WordPress environments warrants timely attention. This is not a critical zero-day requiring emergency response, but it should be patched within standard maintenance windows (weeks, not months) rather than deferred. Prioritize patching if your WordPress site has more than a handful of content contributors or if you manage multiple client sites running this plugin.

Risk score, explained

The CVSS 3.1 score of 6.4 (Medium) reflects: Network-accessible attack vector, Low privilege requirements (author-level), No user interaction needed, Changed scope (malicious script affects other users, not just the attacker), and Limited impact (confidentiality and integrity compromised, but availability not affected). The score appropriately captures a real risk that can compromise user data and content integrity but stops short of critical severity because the attacker must first be authenticated and the attack only affects users viewing specific pages.

Frequently asked questions

Does this vulnerability allow unauthenticated attackers to inject scripts?

No. Exploitation requires an authenticated WordPress account with author-level permissions or above. This significantly raises the bar compared to vulnerabilities exploitable by anyone on the internet. However, compromised contributor accounts, malicious insiders, or broadly distributed authorship access increase risk.

Will updating the plugin automatically remove previously injected malicious code?

No. The patch will prevent new injections but will not automatically clean existing malicious meta keys from the database. After patching, audit your post metadata table for suspicious custom field keys and manually remove any found. This is a critical post-patch step.

Is this vulnerability being actively exploited in the wild?

This vulnerability is not listed on CISA's Known Exploited Vulnerabilities (KEV) catalog as of the publication date, which suggests active, weaponized exploitation has not been widely documented. However, the relatively straightforward nature of the attack means security teams should not rely on low KEV status as justification for delayed patching.

Does the vulnerability affect all uses of the Insert Pages plugin or only specific shortcodes?

The vulnerability is specific to pages rendered with the [insert page='ID' display='all'] shortcode. If your site uses this plugin with other display parameters or does not use the 'all' display mode, you may have reduced risk, but patching is still recommended as a precaution.

This analysis is provided for informational purposes to support security decision-making. It does not constitute professional legal, security, or business advice. Organizations should validate all technical claims against official vendor advisories and conduct their own risk assessments based on their environment, user base, and business context. Patch availability and version numbers should be verified directly with the WordPress plugin repository or vendor website before implementation. SEC.co assumes no liability for decisions made in reliance on this analysis. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).