Skip to main content

SEOPress EUVDEUVD-2026-114650

| CVE-2026-116535 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-31 Wordfence GHSA-3rrf-p83h-c57v
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain Subscriber account on target site
  2. Delivery
    Set display_name with %%archive_title%% token and event-handler payload
  3. Exploit
    Plugin substitutes token after escaping
  4. Execution
    Script stored unfiltered in display name
  5. Persist
    Victim loads page rendering the variable
  6. Impact
    Payload executes in victim browser (scope-changed)

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

Requires an authenticated account at Subscriber level or above (PR:L) on the target WordPress site - self-registration, where enabled, makes this trivial. The attacker sets their profile display_name to a string containing the literal %%archive_title%% token alongside an HTML event-handler payload; WordPress stores display names without HTML filtering and SEOPress substitutes the token after output escaping has already occurred, defeating the escaping. Exploitation further depends on the site configuration actually rendering the %%archive_title%% dynamic variable on a page where the attacker's display name is surfaced, and on the payload page being accessed by a victim. Limiting factors: Subscriber-level authentication is mandatory (no unauthenticated path), and the specific token/variable rendering condition must be met; affects all versions up to and including 10.3.

Impact

This is a moderate-priority stored XSS (CWE-79) with a balanced, not alarmist, risk profile. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, score 6.4) indicates a network-reachable, low-complexity flaw that requires authentication (PR:L - Subscriber-level) and no attacker-driven user interaction, with a changed scope reflecting that injected script executes in other users' browser context. No EPSS score was provided, so statistical exploitation probability cannot be stated. KEV status is not listed, so this is not confirmed as actively exploited. No PoC or working-exploit reference appears in the input (the references are a Wordfence advisory, WordPress trac source lines, and the fix changeset) - so no public exploit is identified at time of analysis. The vuln.today decision label is 'this_month', consistent with a real but non-emergency issue: a genuine stored XSS requiring a (trivially obtainable) Subscriber account, warranting scheduled patching rather than crisis response. The signals are internally consistent - there is no conflict between CVSS network vector and the description, which confirms remote, authenticated (Subscriber) exploitation. The main limiting factor is the authentication requirement plus the specific condition that the site must render the %%archive_title%% token where the display name is substituted.

Exploit ScenarioDerived

A low-privileged Subscriber registers or already holds an account and sets their WordPress display name to a value containing the literal %%archive_title%% token combined with an HTML event-handler payload; WordPress stores the display name without HTML filtering. When a visitor or administrator loads a page where SEOPress substitutes the %%archive_title%% dynamic variable after output escaping has already run, the payload executes in that user's browser. No public exploit code is identified at time of analysis, though the mechanism is described in detail in the Wordfence advisory and the patched source.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 31, 2026

Stored cross-site scripting in the SEOPress WordPress plugin (all versions up to and including 10.3) lets any authenticated Subscriber-level user plant script in a page by setting their profile display_name to a value combining the literal %%archive_title%% token with HTML event-handler attributes. Because WordPress stores display names without HTML filtering and SEOPress substitutes the dynamic-variable token after output escaping has already been applied, the escaping is defeated and the injected markup executes in the browser of any user who views the affected page - including higher-privileged users, which is why the vector carries S:C. With a CVSS of 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) and a this_month priority rating, this is a moderate-severity issue that is practically reachable on sites with open self-registration enabled; no public exploit code or CISA KEV entry was identified at time of analysis. Exploitation requires both Subscriber-level authentication and a site configuration that actually renders %%archive_title%% on a page where the attacker's display name is surfaced.

RemediationAI

The fix is upstream: changeset 3772366 (https://plugins.trac.wordpress.org/changeset/3772366/wp-seopress/trunk/inc/functions/options-social.php) modifies the token-substitution path in trunk, so update SEOPress to a release that incorporates that changeset once it is published - an exact patched version number is not confirmed in the available data, so verify the plugin changelog or the Wordfence advisory before declaring the site fixed. Sites that cannot update immediately should consider compensating controls, understanding that these are analyst inference rather than vendor-documented guidance: disable open self-registration and review existing low-privilege accounts so untrusted users cannot set a malicious display_name, and audit any profile display names containing the literal %%archive_title%% string or HTML event-handler attributes; avoid using the %%archive_title%% dynamic variable in templates where a user-supplied display name is rendered into the same attribute context, since that is the specific combination the payload needs. Note that the trigger also requires a victim to load the affected page, so restricting the pages that render these templates to trusted audiences reduces exposure but does not remove the underlying injection once a patch is bypassed by an attacker. The authoritative remediation reference remains the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/6651c932-aa60-485b-bb5b-b66d5a8963ae.

Affected VersionsENISA

SEOPress – AI SEO Plugin & On-site SEO 0 ≤10.3

Affected Packages

euvd seopress_ai_seo_plugin_on_site_seo no fix

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

The flaw is a CWE-79 classic case of context confusion in SEOPress's dynamic-variable pipeline. SEOPress provides template tokens such as %%archive_title%% that are expanded into social/SEO meta output; the affected code paths live in inc/functions/options-social.php (lines referenced around 533, 542, 1104 and 1112), inc/functions/variables/dynamic-variables.php (around line 340) and inc/functions/options-titles-metas.php (around line 403) in the 10.3 tag. The substitution happens after the surrounding value has already been passed through escaping, so attacker-controlled text that reaches the substituter is re-injected verbatim into the rendered attribute or tag context. The attacker-controlled source is the WordPress user display_name field: WordPress permits HTML characters in that field, so a low-privilege account can store a string containing both the %%archive_title%% token and an event-handler payload such as onmouseover/onerror; when the plugin later expands the token in a template where the display name is used, the payload lands unescaped. The Scope:Changed metric reflects that the script executes in the security context of other users of the site (including administrators viewing the affected page), not just the injecting Subscriber.

Know when Wordpress Plugin 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

Vendor (Wordfence) PRIMARY 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.4 MEDIUM

Network-reachable stored XSS needing a Subscriber account (PR:L), no attacker-side interaction (UI:N), executing in other users' context (S:C) with limited confidentiality/integrity impact and no availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The SEOPress - AI SEO Plugin & On-site SEO plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'display_name' parameter in all versions up to, and including, 10.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by any Subscriber who sets their display_name to a string containing the literal %%archive_title%% token alongside HTML event-handler payloads, as WordPress stores display names without HTML filtering and the plugin substitutes the token after escaping has already occurred.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
popular WordPress SEO plugin, widely used but not universal
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy