Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain subscriber credentials
-
DeliveryAccess WP Docs settings page
-
ExploitInject XSS payload in icon_size parameter
-
InstallPayload stored in WordPress database
-
C2Administrator visits settings page
-
ExecuteMalicious script executes in admin browser
-
ImpactSession 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Stored Cross-Site Scripting in the WP Docs WordPress plugin (versions ≤2.3.1) allows authenticated subscribers to inject
The WP Docs plugin for WordPress is vulnerable to time-based SQL Injection via the 'dir_id' parameter in all versions up
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Fahad Mahmo
Unauth. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no authentication required, low at
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Fahad Mahmood WP D
Missing Authorization vulnerability in Fahad Mahmood WP Docs wp-docs allows Exploiting Incorrectly Configured Access Con
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Fahad Mahmo
EUVD-2026-23168
NVD
CVE.org
EPSS
Vulnrichment
VulDB
GitHub PoC
Exploit-DB