Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify site with Base64 link encoding enabled
-
DeliverySend crafted /goto/{base64} redirect request
-
ExploitInject script into stored Log URL
-
ExecutionPayload executes in admin's browser
-
ImpactHijack session or perform admin actions
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 | Exploitation requires the administrator to have enabled the 'Link Encoding: Base64' option in the No External Links plugin settings - this is a non-default configuration and is the primary limiting factor. Given that setting, an unauthenticated remote attacker can inject a stored script via the Log URL handling of the /goto/{base64} redirect path (vulnerable code in LogTable.php and public/Frontend.php). Execution additionally depends on a privileged user (e.g., an administrator reviewing logs) later viewing the injected page, so impact is realized only upon victim page access. Sites running ≤5.2.0 without Base64 link encoding enabled are not affected. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2 HIGH) describes a network-reachable, unauthenticated stored XSS with a scope change, which on paper is attractive to attackers. However, several signals temper real-world urgency. No EPSS score was provided, there is no CISA KEV listing, and no public exploit code is referenced - so there is no public exploit identified at time of analysis. Most importantly, the description explicitly gates exploitation on a non-default configuration: the administrator must have enabled the 'Link Encoding: Base64' option. This conflicts with the PR:N/AC:L framing because, while the attacker needs no privileges, success depends entirely on a target-side setting the attacker does not control - so the 'unauthenticated, low-complexity' reading overstates practical exploitability against typical deployments. The impact is also bounded (C:L/I:L/A:N), consistent with browser-side script execution rather than server compromise. Net assessment: a legitimate, vendor-reported (Wordfence) stored XSS worth patching, but a conditional, moderate-risk issue rather than a widespread emergency - prioritize only where the Base64 link-encoding feature is actually enabled. |
| Exploit ScenarioDerived | On a site where the admin has enabled the 'Link Encoding: Base64' option, an unauthenticated attacker crafts a malicious /goto/{base64} redirect request whose URL contains a script payload. The payload is stored unsanitized and later rendered in the plugin's Log URL output, executing in the browser of any user (typically an administrator) who views the logged page. No public exploit code is referenced at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Stored cross-site scripting in the No External Links WordPress plugin (all versions up to and including 5.2.0) lets an unauthenticated remote attacker inject arbitrary web scripts through the Log URL handling of the /goto/{base64} redirect path, with the injected payload executing when a privileged user views the affected page. The CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N (base 7.2 HIGH), and per the independent assessment the attack is network-reachable and unauthenticated but is gated by a non-default prerequisite: the administrator must have enabled the 'Link Encoding: Base64' option, and the payload only fires once a victim later loads the poisoned page, such as an admin reviewing the plugin's log table. Sites running 5.2.0 or earlier without Base64 link encoding enabled are not affected, and no public exploit code was identified at time of analysis.
RemediationAI
Apply the upstream fix for the No External Links plugin: a code change was committed in the plugin repository changeset r3719796 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3719796%40mihdan-no-external-links&new=3719796%40mihdan-no-external-links), so upgrading to the release containing that changeset addresses the flaw; a released patched version number was not independently confirmed from the supplied data, so verify the version prior to update. If an immediate upgrade is not possible, the most effective compensating control is to disable the 'Link Encoding: Base64' option in the plugin settings, which removes the vulnerable /goto/{base64} logging path entirely - the trade-off is that outbound links will no longer be base64-encoded/cloaked, changing the site's link presentation. Alternatively, temporarily deactivate the plugin until it can be patched. Administrators should also purge or review existing rows in the plugin's log table for injected script content before restoring normal operation, restrict access to the plugin's admin log screens to trusted users, and consider a WAF rule blocking script payloads in /goto/ requests; note that a WAF is a detection/blocking layer that does not remove already-stored payloads. Full remediation detail is documented at the Wordfence advisory referenced above.
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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting) arising from insufficient input sanitization and missing output escaping in the plugin's redirect-logging flow. No External Links rewrites outbound links on a WordPress site and, when the optional 'Link Encoding: Base64' setting is enabled, intercepts clicks through a /goto/{base64} endpoint that decodes the target URL and records it. The referenced source shows the unsanitized handling of that logged URL spread across admin/LogTable.php (line 95) and public/Frontend.php (lines 451, 801 and 989) in tag 5.2.0, meaning the user-controlled URL is stored and later rendered into an administrative log view without adequate escaping. Because execution occurs when the stored value is rendered, the flaw is persistent (stored) rather than reflected, and the CVSS scope change (S:C) reflects the ability of injected script running in a privileged viewer's browser context to affect resources beyond the vulnerable component. The affected package is identified by CPE cpe:2.3:a:mihdan:no_external_links:*:*:*:*:*:*:*:* (vendor mihdan), tracked in the EU software vulnerability database as EUVD-2026-91254.
Know when No External Links 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:N/S:C/C:L/I:L/A:N
Unauthenticated network injection (AV:N/PR:N) into stored output executing in another user's browser (S:C, C:L/I:L); AC kept low though the required non-default Base64 setting could justify AC:H.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The No External Links plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Log URL via /goto/{base64} Redirect in all versions up to, and including, 5.2.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is only exploitable when the administrator has enabled the 'Link Encoding: Base64' option in the plugin settings.
Executive ViewAI
The No External Links WordPress plugin, through version 5.2.0, contains a high-severity stored cross-site scripting issue that can allow an unauthenticated attacker to place malicious content into plugin log entries and have it execute in a privileged user's browser when those entries are reviewed. Exposed sites face potential compromise of administrator sessions and unauthorized administrative actions, but the risk is limited to installations where the non-default Base64 link encoding option has been enabled. With no vendor patch currently available, leadership should prioritize identifying and mitigating affected WordPress deployments to protect administrative access and site integrity.
Disable the 'Link Encoding: Base64' option; if not essential, deactivate or remove No External Links versions up to and including 5.2.0; restrict WordPress admin and plugin log access; deploy WAF/virtual patching to block or sanitize malicious /goto/{base64} requests; review logs and reset privileged user sessions if suspicious activity is found. No vendor-released patch identified at time of analysis.
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.
EUVD-2026-91254
GHSA-wwjw-5544-v47j
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB