Skip to main content

Wp Docs EUVDEUVD-2026-23168

| CVE-2026-3878 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-04-16 Wordfence
6.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Recon
    Obtain subscriber credentials
  2. Delivery
    Access WP Docs settings page
  3. Exploit
    Inject XSS payload in icon_size parameter
  4. Install
    Payload stored in WordPress database
  5. C2
    Administrator visits settings page
  6. Execute
    Malicious script executes in admin browser
  7. Impact
    Session cookie/credentials exfiltrated

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

Successful exploitation requires: (1) an authenticated WordPress user account with at least subscriber-level role, which grants access to plugin settings pages; (2) the WP Docs plugin installed and activated on the WordPress installation; (3) the vulnerable 'wpdocs_options[icon_size]' parameter exposed through the plugin's settings interface (accessible via /wp-admin/admin.php?page=wpdocs or similar). The vulnerability does NOT require users to click malicious links, disable security features, or interact with the site in any special way beyond routine access to pages where the setting is rendered. The vulnerability is limited to the 'icon_size' parameter specifically, though similar issues may exist in other plugin parameters if they use the same insecure coding pattern. Organizations with strict subscriber account policies or those that disable user registration are at lower practical risk, as exploitation requires valid credentials.

Impact

While the CVSS 6.4 score is moderate, the real-world risk is elevated by several factors. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C) indicates network attack surface with low complexity and no user interaction required, meaning any authenticated subscriber can trigger the vulnerability without deceiving other users. The scope change flag (S:C) confirms impact extends to confidentiality and integrity of other users' sessions and data. However, exploitation is limited by the authentication requirement (PR:L - subscriber-level access needed), which is a meaningful barrier in public-facing sites but negligible in internal or community-driven WordPress instances where users freely register. The CVSS impact ratings (C:L/I:L for confidentiality and integrity with no availability impact) suggest the vulnerability is suitable for targeted attacks (credential harvesting, account takeover via session hijacking) rather than mass site defacement. The straightforward nature of the payload injection (a parameter stored and reflected) and the prevalence of WordPress make this a priority for patching, but it does not justify emergency response protocols for organizations with strict WordPress subscriber policies.

Exploit ScenarioDerived

An attacker with or having obtained subscriber-level WordPress credentials navigates to the WP Docs plugin settings page and injects a malicious JavaScript payload (e.g., 'javascript:fetch("/wp-json/wp/v2/users/1",...)') into the 'icon_size' parameter. The payload is stored in the WordPress options table without sanitization. When any site administrator or user visits the plugin settings page or a page where the icon size setting is rendered, the injected script executes in their browser context, allowing the attacker to steal session cookies, capture login credentials, or perform administrative actions on their behalf.

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

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

Alert me

AnalysisAIv1 – Apr 16, 2026

Stored Cross-Site Scripting (XSS) in WP Docs plugin for WordPress (all versions through 2.2.9) allows authenticated attackers with subscriber-level access to inject malicious scripts via the 'wpdocs_options[icon_size]' parameter due to insufficient input sanitization and output escaping. The injected scripts execute in the context of any user accessing the affected page, enabling session hijacking, credential theft, or malware distribution with no user interaction required beyond normal site browsing. No public exploit code has been identified, but the vulnerability is technically straightforward to exploit given valid subscriber credentials.

RemediationAI

Update the WP Docs plugin to version 2.2.10 or later. The fix is available in WordPress plugin repository changeset 3481830 (https://plugins.wordpress.org/changeset/3481830/wp-docs), which addresses the vulnerability by implementing proper input sanitization using WordPress sanitization functions and output escaping using appropriate escaping functions such as esc_attr() for HTML attributes. Organizations unable to upgrade immediately should restrict the 'manage_options' capability (which controls access to plugin settings) to trusted administrator accounts only, and implement Content Security Policy (CSP) headers with script-src restrictions to limit the execution scope of injected scripts, though this is a temporary control and not a substitute for patching. Additionally, review WordPress user roles and remove subscriber-level access from users who do not require it, reducing the attack surface to those with legitimate need to modify plugin settings.

Affected VersionsENISA

WP Docs 0 ≤2.2.9

Affected Packages

euvd wp_docs 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 stems from improper handling of the 'wpdocs_options[icon_size]' parameter in the WP Docs plugin, a WordPress plugin designed to manage documentation. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), resulting from both insufficient input sanitization during parameter processing and inadequate output escaping when rendering the parameter value in HTML context. WordPress plugins process user-supplied settings through the options API; when plugin developers fail to use functions like sanitize_text_field() during input and esc_attr() or esc_html() during output, attacker-supplied JavaScript can persist in the WordPress database and execute in any user's browser. The CPE string cpe:2.3:a:fahadmahmood:wp_docs:*:*:*:*:*:*:*:* indicates the vulnerability affects all versions of the plugin authored by Fahad Mahmood.

Know when Wp Docs 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

NVD PRIMARY 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

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

DescriptionCVE.org

The WP Docs plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'wpdocs_options[icon_size]' parameter in all versions up to, and including, 2.2.9 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.

Threat Intelligence Overview

EPSS Score
0.0%
Top 99% exploitable
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.0%
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.

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