Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft link with base64-encoded XSS in uri param
-
DeliveryDeliver malicious link via phishing
-
ExploitVictim clicks link
-
ExecutionDecoded HTML echoed unescaped by showMessage()
-
ImpactScript executes in victim browser session
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 | Reflected XSS reachable by any unauthenticated attacker over the network against SSL Zen <=4.7.42, with no special plugin configuration required - the token_missmatch code path in ssl_zen_messages::getMessages() processes attacker-supplied 'uri'/'host' request parameters directly. The key LIMITING factor is mandatory user interaction (UI:R): the attacker must trick a victim into clicking a crafted link, so exploitation depends on successful social engineering and cannot be triggered passively. Impact is scoped to the victim's browser session (C:L/I:L), with elevated value if the victim is an authenticated administrator. |
| Impact | This is a reflected XSS (CWE-79) in the SSL Zen WordPress plugin, rated CVSS 6.1 (medium). The vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N indicates network-reachable, low-complexity, unauthenticated exploitation, but it critically REQUIRES user interaction (UI:R) - a victim must click an attacker-crafted link - which caps real-world severity. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so there is no signal of active or automated exploitation. No SSVC decision data was supplied. The technical root cause is well-documented and plausible: getMessages() base64_decodes the attacker-controlled 'uri'/'host' parameters after sanitize_text_field(), which cannot strip HTML hidden inside a base64 blob, and showMessage() echoes the decoded raw HTML unescaped. This is a genuine but standard, interaction-gated reflected XSS - a routine-priority patch item, not an emergency; the bounded C:L/I:L/A:N impact and mandatory phishing step keep real-world risk moderate rather than critical. |
| Exploit ScenarioDerived | An attacker crafts a URL to the target WordPress site with a base64-encoded JavaScript payload in the 'uri' (or 'host') parameter and delivers it via phishing, forum post, or malicious ad. When a logged-in administrator or any visitor clicks the link, the token_missmatch message is rendered with the decoded raw HTML, executing the script in their browser session (e.g., stealing cookies or performing actions as that user). No public exploit code is identified at time of analysis, though the vulnerable code path is precisely described in the Wordfence/trac references. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Reflected cross-site scripting in the SSL Zen - SSL Certificate Installer & HTTPS Redirects WordPress plugin, versions up to and including 4.7.42, allows an unauthenticated remote attacker to inject arbitrary JavaScript into a victim's browser session through the base64-encoded 'uri' and 'host' request parameters. The plugin decodes these parameters after running sanitize_text_field() on them, so HTML and script markup that is hidden inside the base64 blob survives filtering and is then echoed unescaped by showMessage(), landing in the page as executable content. Exploitation requires the victim to click a crafted link (CVSS vector UI:R), making it a social-engineering-dependent attack rather than a passively triggered one; the impact is scoped to the victim's browser session with low confidentiality and integrity impact, and no public exploit code was identified at time of analysis, so it is not confirmed as actively exploited. The impact is materially elevated when the crafted link is opened by a logged-in WordPress administrator, because the injected script then runs in an authenticated administrative context.
RemediationAI
No vendor-released patch version is identified in the available data; a Trac changeset is referenced at https://plugins.trac.wordpress.org/changeset?reponame=&old=3701590%40ssl-zen&new=3701590%40ssl-zen, which appears to contain an upstream fix, but a corresponding released plugin version could not be independently confirmed - treat this as 'upstream fix available (PR/commit); released patched version not independently confirmed' and update to the newest SSL Zen release as soon as one beyond 4.7.42 is published, verifying the changelog against the advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/20816039-0b1c-420a-b5f4-b5370d0331da?source=cve. If no patched release is available, the most effective compensating control is to deactivate and remove the SSL Zen plugin until a fix ships, accepting the loss of its certificate-installation and HTTPS-redirect functionality; where the plugin must remain active, deploy a WAF or reverse-proxy rule that rejects requests whose 'uri' or 'host' query parameters decode to values containing HTML tags, angle brackets, or script keywords, understanding that base64 payloads are easy to mutate and such signatures are bypassable. Because the payload is delivered via a crafted link and executes only on user click, tighten the social-engineering surface: instruct administrators never to follow unsolicited or third-party links into wp-admin, restrict wp-admin access by IP allowlist or VPN (accepting reduced flexibility for remote staff), and enable browser isolation or a hardened/script-blocking browser profile for administrative sessions, which limits script execution but can break legitimate plugin UI. Finally, note that the root coding defect is decode-after-sanitize, so any interim patch or code override must escape the decoded value at output (for example esc_html() on the base64_decode() result) rather than relying on sanitize_text_field(), which by design cannot inspect encoded content.
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 is a classic CWE-79 improper neutralization of input during web page generation, but with an unusual order-of-operations twist that defeats the plugin's own input filtering. SSL Zen's ssl_zen_messages::getMessages() function constructs the 'token_missmatch' notice by calling base64_decode(sanitize_text_field($_REQUEST['uri'])) and optionally base64_decode(sanitize_text_field($_REQUEST['host'])). Because sanitize_text_field() is applied to the encoded string rather than to the decoded output, any HTML or JavaScript encoded inside the base64 payload arrives at the decoder intact - base64 is not a content filter, it merely obscures the markup from WordPress's text sanitizer. The decoded raw HTML is subsequently emitted by showMessage() without esc_html(), esc_attr(), or wp_kses() escaping, so the attacker-controlled markup is rendered by the browser as part of the plugin's admin/notice output. The affected component is the SSL Zen plugin for WordPress (CPE cpe:2.3:a:sslzen:ssl_zen_-_ssl_certificate_installer_&_https_redirects), a tool that installs SSL certificates and configures HTTPS redirects. The referenced source locations, the 4.7.14 and 4.7.42 tags of ssl_zen/classes/class.ssl_zen_messages.php at line 44 and ssl_zen/classes/class.ssl_zen_admin.php at line 863, show that the same unsafe decode-then-echo pattern is present across multiple release tags, indicating a long-standing rather than newly introduced coding flaw. The proper remediation pattern in WordPress is to escape at output time (esc_html/esc_attr on the decoded value) and to validate that the decoded value is a legitimate URI/host rather than free-form markup.
Know when Wordpress Plugin 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:N/UI:R/S:C/C:L/I:L/A:N
Unauthenticated network-reachable reflected XSS requiring a victim click (UI:R); scope change (S:C) as script runs in the browser context with limited C/I impact and no availability effect.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The SSL Zen plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the 'uri' (and 'host') parameters in versions up to, and including, 4.7.42. The ssl_zen_messages::getMessages() function builds the 'token_missmatch' message using base64_decode(sanitize_text_field($_REQUEST['uri'])) and (optionally) base64_decode(sanitize_text_field($_REQUEST['host'])). sanitize_text_field() cannot strip HTML/JavaScript that is hidden inside a base64-encoded blob, and the resulting decoded raw HTML is echoed unescaped by showMessage() . This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a specially crafted link.
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.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
EUVD-2026-86593
GHSA-j5cf-2jhm-4f9m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB