{"dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": {"cveId": "CVE-2026-118784", "assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599", "state": "PUBLISHED", "assignerShortName": "Wordfence", "dateReserved": "2026-10-28T19:51:16.327Z", "datePublished": "2026-11-07T09:25:46.871Z", "dateUpdated": "2026-11-07T18:06:03.788Z"}, "containers": {"cna": {"providerMetadata": {"orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599", "shortName": "Wordfence", "dateUpdated": "2026-11-07T09:25:46.871Z"}, "affected": [{"vendor": "john-dagelmore", "product": "WPSpeed \u2013 WordPress Speed, Cache & Performance Optimization (Core Web Vitals, PageSpeed 100)", "versions": [{"version": "0", "status": "affected", "lessThanOrEqual": "2.6.10", "versionType": "semver"}], "defaultStatus": "unaffected"}], "descriptions": [{"lang": "en", "value": "The WPSpeed plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.6.10 This is due to a combination of two issues in the LightImages HTML optimizer: (1) Dispatcher::runOptimize() decides whether the current request is the site's home page by comparing only the URL path from REQUEST_URI against the path of the home URL, so on a plain-permalinks install the author archive URL /?author=<ID> is treated as the home page and the LightImages optimizer runs on it; and (2) LightImages::optimize() calls html_entity_decode() across the entire serialized DOMDocument output under the default-enabled img_processing_entity_decode setting, converting any entity-encoded markup present as plain text in the page (including WordPress's rendered author title) into live HTML. This makes it possible for authenticated attackers, with Subscriber-level access and above, to store entity-encoded markup in their own nickname/display_name through the normal profile endpoint and have that markup rehydrated into executing script when any logged-out visitor loads their author archive."}], "title": "WPSpeed <= 2.6.10 - Authenticated (Subscriber+) Stored Cross-Site Scripting via User Nickname/Display Name", "references": [{"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/47aa1a74-4189-4521-ba6e-e91a06b8f5a6?source=cve"}, {"url": "https://plugins.trac.wordpress.org/browser/wpspeed/tags/2.6.10/src/Dispatcher.php#L170"}, {"url": "https://plugins.trac.wordpress.org/browser/wpspeed/tags/2.6.10/src/Core/LightImages.php#L628"}, {"url": "https://plugins.trac.wordpress.org/browser/wpspeed/tags/2.6.10/src/Core/Optimize.php#L152"}, {"url": "https://plugins.trac.wordpress.org/changeset/3771695/wpspeed/trunk/src/Core/LightImages.php"}], "problemTypes": [{"descriptions": [{"lang": "en", "description": "CWE-79 Improper Neutralization of Input During Web Page Generation", "cweId": "CWE-79", "type": "CWE"}]}], "metrics": [{"cvssV3_1": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N", "baseScore": 6.4, "baseSeverity": "MEDIUM"}}], "credits": [{"lang": "en", "type": "finder", "value": "poiri3r"}], "timeline": [{"time": "2026-10-28T20:58:29.000Z", "lang": "en", "value": "Vendor Notified"}, {"time": "2026-11-06T21:25:42.000Z", "lang": "en", "value": "Disclosed"}]}, "adp": [{"metrics": [{"other": {"type": "ssvc", "content": {"id": "CVE-2026-118784", "role": "CISA Coordinator", "options": [{"Exploitation": "none"}, {"Automatable": "no"}, {"Technical Impact": "partial"}], "version": "2.0.3", "timestamp": "2026-11-07T18:00:49.153607Z"}}}], "title": "CISA ADP Vulnrichment", "providerMetadata": {"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-11-07T18:06:03.788Z"}}]}}