CVE-2026-120739: Optimole (WordPress plugin) · Cross-site Scripting
Affects Optimole (WordPress plugin)Source CVE Database V5
Not known to be exploited · CVSS 7.2 High.
Data as of 7 Nov 2026, 03:51 UTC
Thin evidence
One scorer or none| CNA (Wordfence) | CVSS 3.1 | 7.2 |
|---|
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 7 Nov 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 6 Nov 2026.
What to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| optimoleOptimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization | Affected
| Fixed in– |
AI-suggested
Until a fix is available, users should consider disabling the plugin or restricting access to affected functionality. Monitor official vendor channels for updates and apply patches promptly once released.
Description
The Optimole WordPress plugin up to version 4.2.18 is vulnerable to a stored Cross-Site Scripting (XSS) flaw via the 's (missing_srcsets[*][*].s)' parameter. This vulnerability allows unauthenticated attackers to inject malicious scripts that execute when users access the affected pages. The plugin's REST endpoint authorization is effectively bypassed because the required HMAC signature is exposed in plaintext to unauthenticated visitors on pages with incomplete profiles.
References
- wordfence.com/threat-intel/vulnerabilities/id/5d60007c-8957-4c46-8c5c-47b7f626f0bb?source=cve (opens in a new tab)
- plugins.trac.wordpress.org/browser/optimole-wp/tags/4.2.17/inc/rest.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/optimole-wp/tags/4.2.17/inc/rest.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/optimole-wp/tags/4.2.17/inc/tag_replacer.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/optimole-wp/tags/4.2.17/inc/tag_replacer.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/optimole-wp/tags/4.2.17/inc/manager.php (opens in a new tab)
- plugins.trac.wordpress.org/changeset?reponame=&old=3784828%40optimole-wp&new=3784828%40optimole-wp (opens in a new tab)