CVE-2026-93514
Executive Summary
CVE-2026-93514 is an unauthenticated reflected/stored Cross-Site Scripting (XSS) vulnerability in the "Notification for Telegram" plugin for WordPress, affecting all versions up to and including 3.5.2. The flaw requires no authentication (PR:N) and a victim user to interact with a crafted request (UI:R), allowing an attacker to inject and execute arbitrary script in the context of the victim's browser. With a CVSS base score of 7.1 (High), successful exploitation can lead to session hijacking, credential theft, malicious redirects, and administrative account takeover when an authenticated administrator is the victim.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e., Cross-Site Scripting). Per the NVD description, the issue is an "Unauthenticated Cross Site Scripting (XSS) in Notification for Telegram <= 3.5.2 versions."
The "Notification for Telegram" component is a WordPress plugin that sends notifications to Telegram channels/chats. The vulnerability arises because user-supplied input processed by the plugin is reflected or stored into HTML output without adequate output encoding or sanitization, permitting a script payload to be rendered and executed in a victim's browser.
Key characteristics that define the attack surface:
- Unauthenticated attack vector: PR:N in the CVSS vector confirms the attacker does not need valid credentials to deliver the malicious input, meaning any reachable endpoint that returns unsanitized data is exploitable by anonymous users.
- User interaction required: UI:R confirms that a victim must visit a crafted URL or trigger a page that renders the injected payload — this is a reflected XSS pattern delivered via a lure link, though a stored variant is possible if input is persisted server-side.
- Scope change: S:C in the vector indicates the XSS payload escapes the security context of the vulnerable component and can affect resources beyond the vulnerable component, enabling impacts such as session token theft, CSRF token exfiltration, and arbitrary action execution on behalf of a victim administrator within the broader WordPress application.
- Impact subscores (C:L/I:L/A:L): Confidentiality, integrity, and availability impact is rated Low individually, consistent with XSS where an attacker can read/modify some victim-context data and script behavior but does not achieve full server compromise.
Because the NVD description provides no endpoint names, parameter names, injectable fields, or code-level detail, all specific technical implementation claims beyond the plugin name and version range would be speculative. No CVE-specific CWE beyond CWE-79 is asserted, and no public PoC, Nuclei template, or exploit code is known to exist.
The most plausible mechanistic class, consistent with the "unauthenticated" and "XSS" descriptors, is that an HTTP request parameter or request-derived value is echoed into a returned page (or stored and later rendered) without encoding. The precise input vector is undocumented in the supplied data.
Exploitation Scenarios
No public PoC is available; the attack chain below is inferred at the vulnerability-class level from the NVD description and CVSS vector. Specific endpoint paths or parameter names cannot be confirmed and are therefore not asserted.
Reconnaissance / target identification. The attacker enumerates internet-facing WordPress sites and fingerprints the "Notification for Telegram" plugin (e.g., via plugin directory/file probing or HTTP response content). Shodan dorks such as those listed in METADATA can mass-identify candidate hosts. Target versions are filtered to <= 3.5.2.
Triggering the XSS (vulnerability-class level). Because the vulnerability is unauthenticated, the attacker does not need to log in. The attacker constructs a malicious request in which a script payload is supplied as input to the plugin that is not sanitized before being emitted as HTML. Given UI:R, the request is typically delivered to a victim as a crafted link; if the input is persisted, the payload renders when a victim views the affected page. Either way, the payload executes in the victim's browser under the site's origin.
Payload / execution method (vulnerability-class level). The injected payload is JavaScript that the victim's browser executes in the context of the WordPress site. Typical objectives include reading cookies/session tokens, extracting anti-CSRF nonces, performing authenticated actions via the victim's session, or injecting content. No specific payload syntax can be validated against the description, so only the generic XSS execution model is stated here.
Post-exploitation impact. With S:C, the attacker's script operates in the site's origin, enabling session hijacking and, if an administrator is the victim, potential privileged action execution within WordPress. This creates pathways to further site compromise (e.g., content manipulation, plugin/theme changes) consistent with a low-but-nonzero impact in each of C/I/A.
Impact Assessment
- CVSS base score: 7.1 (High), CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L.
- AV:N — remotely exploitable over the network.
- AC:L — no special conditions beyond the standard requirement for a victim visit.
- PR:N — no authentication needed to deliver the attack, broadening the attacker pool.
- UI:R — a victim must interact with the crafted request, making this a socially-engineered/lured attack rather than fully autonomous.
- S:C — a scope change means the XSS payload can influence resources outside the vulnerable component (i.e., the wider WordPress installation).
- C:L/I:L/A:L — low confidentiality/integrity/availability impact in-scope, but the scope change amplifies practical risk.
- Affected systems: WordPress deployments running the "Notification for Telegram" plugin at versions <= 3.5.2.
- Blast radius: Single-site scope for the XSS payload, but a changed scope means consequences can extend to the full WordPress application and any user session it interacts with. Administrative session compromise elevates impact toward full-site takeover potential in real-world chained scenarios.
- Business impact: Session hijacking of authenticated users, content tampering, phishing within a trusted origin, and reputational damage from injection on a public site.
- EPSS: Not yet scored by FIRST.org — no probability estimate is available.
- CISA KEV: Not listed. No known exploitation in the wild as of this writing.
Detection Guidance
Sigma Rule
title: Potential XSS Exploitation Attempt - Notification for Telegram Plugin
id: 4f2a9c1e-7b3d-4e5a-9c8b-1d2e3f4a5b6c
status: experimental
description: Detects unauthenticated Cross-Site Scripting (XSS) attempts targeting the Notification for Telegram WordPress plugin (<= 3.5.2), indicated by common XSS payload characters in request query strings or bodies.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-93514
author: valtersit.com
date: 2026/01/01
tags:
- attack.initial_access
- attack.t1189
- cve.2026-93514
logsource:
category: webserver
product: apache
detection:
selection_method:
- cs-method: 'GET'
- cs-method: 'POST'
selection_xss:
cs-uri-query|contains:
- '<script'
- '%3Cscript'
- 'javascript:'
- 'onerror='
- 'onload='
- 'onmouseover='
- '"><svg'
- '%3Csvg'
- 'document.cookie'
selection_plugin:
cs-uri-query|contains:
- 'notification-for-telegram'
- 'tg_notify'
condition: selection_method and (selection_plugin or selection_xss)
falsepositives:
- Legitimate application traffic containing script-like strings
- Security scanners and penetration testing
level: medium
YARA Rule
rule CVE_2026_93514_XSS_Telegram
{
meta:
author = "valtersit.com"
description = "Detects XSS payload patterns targeting Notification for Telegram plugin (CVE-2026-93514)"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-93514"
date = "2026-01-01"
cve = "CVE-2026-93514"
strings:
$xss1 = "<script>" ascii nocase
$xss2 = "javascript:" ascii nocase
$xss3 = "onerror=" ascii nocase
$xss4 = "onload=" ascii nocase
$xss5 = "document.cookie" ascii nocase
$xss6 = "<svg onload" ascii nocase
$plugin1 = "notification-for-telegram" ascii nocase
$plugin2 = "tg_notify" ascii nocase
condition:
filesize < 1MB and
(any of ($xss*) and any of ($plugin*)) or
(2 of ($xss*) and any of ($plugin*))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-93514 Possible XSS Attempt - Notification for Telegram Plugin"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"notification-for-telegram"; nocase; http.uri; pcre:"/(%3C|<)script|onerror=|onload=|javascript:/i"; reference:cve,CVE-2026-93514; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-93514; classtype:web-application-attack; sid:202693514; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=1m
[ network where http.request.method in ("GET", "POST") and
url.full : "*notification-for-telegram*" ]
[ network where url.query : ("*<script*" or "*%3Cscript*" or "*onerror=*" or
"*javascript:*" or "*document.cookie*") ]
Splunk SPL Query
index=web sourcetype=access_combined
| eval uri_lower=lower(uri)
| where (like(uri_lower, "%notification-for-telegram%") OR like(uri_lower, "%tg_notify%"))
AND (like(uri_lower, "%<script%") OR like(uri_lower, "%3cscript%")
OR like(uri_lower, "%onerror=%") OR like(uri_lower, "%onload=%")
OR like(uri_lower, "%javascript:%") OR like(uri_lower, "%document.cookie%"))
| stats count min(_time) as first_seen max(_time) as last_seen by src_ip, uri, status
| sort - count
Wazuh OSSEC Rule
<group name="web,wordpress,cve-2026-93514,">
<rule id="2026935" level="10">
<decoded_as>web-accesslog</decoded_as>
<url>notification-for-telegram|tg_notify</url>
<match>script|onerror=|onload=|javascript:|%3Cscript</match>
<description>CVE-2026-93514: Possible XSS attempt against Notification for Telegram plugin</description>
<mitre>
<id>T1189</id>
</mitre>
<group>web_attack,xss,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
- Immediate mitigations
- If the plugin is not actively required, deactivate and remove it. This is the only fully reliable mitigation given the absence of a vendor patch.
- If the plugin must remain, place the affected site behind a Web Application Firewall (WAF) with XSS signatures enabled, and configure virtual patching rules to block script-like payloads in query strings and request bodies.
- Enforce strict Content Security Policy (CSP) headers to reduce JavaScript execution opportunities from reflected input.
- Require administrators to use separate, hardened browsers and avoid browsing sensitive sessions while the plugin is active.
- Patch / upgrade steps
- No vendor fix, patched version, or advisory is available from any tracked source. No upgrade target can be recommended at this time.
- Monitor the plugin's distribution channel and the WordPress plugin repository for a patched release and apply it immediately upon availability.
- If/when a fixed version is released, verify it addresses CVE-2026-93514 specifically, then retest any applied WAF virtual patches and remove temporary workarounds.
- Long-term hardening
- Enforce output encoding and contextual escaping for all user-controlled data across plugins/themes; adopt secure development practices aligned with OWASP guidance on XSS prevention.
- Implement inventory and vulnerability management for all WordPress plugins, with automated version tracking and removal of unmaintained components.
- Turn off plugin/theme editing in wp-config (DISALLOW_FILE_EDIT) and enforce least privilege for administrative accounts.
- Deploy layered monitoring (WAF logs, web server logs, SIEM detections above) to detect exploitation attempts against unpatched plugins.
References
- NVD — CVE-2026-93514: https://nvd.nist.gov/vuln/detail/CVE-2026-93514
- CWE-79 — Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'): https://cwe.mitre.org/data/definitions/79.html
- OWASP — Cross Site Scripting (XSS) Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html
- WordPress Plugin Security / Hardening guidance: https://developer.wordpress.org/plugins/security/
- CISA KEV Catalog (check for future listing): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Note: No public PoC, exploit code, Nuclei template, or exploit-in-the-wild evidence is currently associated with this CVE. No known threat actor campaigns are documented in the supplied data.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.