Skip to main content

Yoast SEO EUVDEUVD-2026-48765

| CVE-2026-15425 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-07-25 security@wordfence.com GHSA-6qx8-mxxj-98fc
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 author-level WordPress credentials
  2. Delivery
    Create post with percent-encoded XSS payload as slug
  3. Exploit
    Publish post to persist payload in database
  4. Execution
    Victim visits post URL with pretty permalink
  5. Persist
    get_permalink() embeds unescaped slug in rendered output
  6. Impact
    Browser executes stored XSS payload

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

Exploitation requires the attacker to hold an authenticated WordPress account at author level or higher (editor, administrator). The target site must have pretty permalinks enabled (Settings > Permalinks set to any structure other than 'Plain'), because the exploit depends on get_permalink() embedding the stored post_name in the generated URL. Yoast SEO plugin must be installed and active on the site. A victim user must access the URL of the injected post or page for the stored script to execute in their browser. Exploitation is limited by: (1) mandatory authenticated author-level access - unauthenticated or subscriber-level attackers cannot trigger this; (2) the pretty permalinks configuration dependency (non-default on a brand-new WordPress install but extremely common in production deployments); (3) the need for a victim to actually visit the affected page. There is no evidence of exploitation against default WordPress configurations by unauthenticated attackers.

Impact

The CVSS 3.1 base score of 6.4 (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) accurately conveys medium severity: network-reachable, low complexity, but gated on author-level credentials (PR:L). The scope change (S:C) reflects that successful exploitation crosses a trust boundary from the WordPress application context to victims' browsers. EPSS data was not provided in the input; without it, probabilistic exploitation likelihood cannot be quantified, but the absence of a KEV listing and public POC code depresses real-world urgency. The author-privilege prerequisite is a meaningful limiting factor - mass exploitation targeting WordPress sites at scale is constrained by the need to first obtain (or already hold) a content-creator account. However, sites where author registration is open, or where contributor accounts are broadly distributed among staff, face higher realistic risk. The pretty-permalinks dependency is practically negligible as a barrier, since the vast majority of WordPress deployments enable pretty permalinks. Overall: a legitimate medium-priority finding requiring timely patching, not an emergency, given no confirmed active exploitation.

Exploit ScenarioDerived

An attacker who holds an author account on a targeted WordPress site - obtained via credential theft, phishing, or open registration - creates or edits a post and sets its slug to a percent-encoded XSS payload. Once the post is published and pretty permalinks are enabled, any administrator, editor, or site visitor who navigates to the post's URL has the script execute silently in their browser, potentially stealing session cookies or performing actions on behalf of the victim. No public proof-of-concept exploit code has been identified at time of analysis, but the vulnerability class is well-understood and the injection point is straightforward to discover from the referenced Trac 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 – Jul 25, 2026

Stored Cross-Site Scripting in the Yoast SEO WordPress plugin (all versions through 28.0) allows authenticated attackers holding author-level accounts or higher to inject persistent JavaScript via a crafted post slug (post_name field) that executes in the browsers of any user who later visits the affected page. The vulnerability traces to insufficient sanitization in the bulk-editor list table (class-bulk-editor-list-table.php, lines 898-900) combined with get_permalink() embedding the stored percent-encoded post_name in generated URLs without adequate escaping. No confirmed active exploitation (no CISA KEV listing) and no public exploit code has been identified at time of analysis, though the scope-changed CVSS vector (S:C) reflects cross-user browser impact consistent with a medium-priority persistent XSS.

RemediationAI

Upgrade the Yoast SEO plugin to version 28.1 or later; the upstream fix is documented in the Trac changeset between tags/28.0 and tags/28.1 (https://plugins.trac.wordpress.org/changeset?old_path=%2Fwordpress-seo/tags/28.0&new_path=%2Fwordpress-seo/tags/28.1) and corresponds to a specific patch in class-bulk-editor-list-table.php (https://plugins.trac.wordpress.org/changeset/3598937/wordpress-seo/trunk/admin/class-bulk-editor-list-table.php). The patched version is 28.1 based on the changeset path - this should be independently verified against the WordPress.org plugin changelog before deployment. As a compensating control while patching is pending, restrict WordPress author-level role assignment to fully trusted users and audit existing accounts with author or higher privileges. Disabling pretty permalinks would technically break the exploit chain but has significant SEO and usability trade-offs and is not recommended as a standing workaround. Web Application Firewall rules targeting percent-encoded XSS payloads in post slug fields (as offered by Wordfence itself) can provide a detection layer without disrupting site function.

Affected VersionsENISA

Yoast SEO – Advanced SEO with real-time guidance and built-in AI 0 ≤28.0

Affected Packages

euvd yoast_seo_advanced_seo_with_real_time_guidance_and_built_in_ai 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 vulnerability resides in Yoast SEO's bulk editor admin interface, specifically the WordPress class-bulk-editor-list-table.php file responsible for rendering post management tables. CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause: the plugin stores attacker-controlled percent-encoded characters in the WordPress post_name (slug) database column without applying wp_kses or equivalent output escaping. When WordPress's get_permalink() constructs a URL embedding that slug, and the Yoast bulk editor or front-end page subsequently renders the resulting hyperlink, the unescaped payload is delivered to the victim's browser. The attack chain specifically depends on WordPress pretty permalinks (e.g., /%postname%/) being configured, because plain ?p=ID permalink structures do not embed the slug in the URL and thus do not trigger the injection. Affected CPE: the Yoast SEO plugin for WordPress, all releases from 0 through 28.0 inclusive.

Know when WordPress 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 5.4 MEDIUM

Author credentials required (PR:L); a victim must visit the page (UI:R); scope changes to victim browser (S:C); no server-side availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:A/VC:N/VI:N/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 Yoast SEO - Advanced SEO with real-time guidance and built-in AI plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Post Slug (post_name) in all versions up to, and including, 28.0 due to insufficient input sanitization and output escaping. 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. This requires pretty permalinks to be enabled, as the exploit chain depends on get_permalink() embedding the stored percent-encoded post_name in the generated URL.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
High
Yoast SEO has over 10 million active WordPress plugin installations worldwide.
Data Quality
5 sources
Confidence: Medium

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
High
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-2016-10033 CRITICAL POC
9.8 Dec 30

The mailSend function in the isMail transport in PHPMailer before 5.2.18 might allow remote attackers to pass extra para

CVE-2016-10045 CRITICAL POC
9.8 Dec 30

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman

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-2024-8353 CRITICAL POC
9.8 Sep 28

The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all

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-2026-63030 CRITICAL POC
9.8 Jul 17

Remote code execution in WordPress 6.9.x (before 6.9.5) and 7.0.x (before 7.0.2) arises from a REST API batch endpoint r

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