Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain pad write access
-
DeliveryImport crafted .etherpad with malicious ol start
-
ExploitPayload stored in attribute pool
-
ExecutionAdmin opens pad or /timeslider
-
Persistsvg onload executes in browser
-
ImpactScript runs in privileged 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 | Requires (1) write access to a pad - anonymous on default Etherpad configurations, but restricted to authenticated users on instances that enforce login for editing; (2) the ability to submit a crafted .etherpad import so setPadRaw ingests a malicious attribute-pool entry (list:number1 with a chosen start), meaning the import feature must be reachable; (3) a space-free start value to satisfy the sink's \S+ capture (e.g. 1><svg/onload=...>); and (4) a victim, notably an administrator, subsequently opening the affected pad or its /timeslider view (UI:R). Limiting factors: exploitation is per-victim (each targeted user must view the pad), instances that disable import or gate write access with authentication materially reduce exposure, and versions 3.3.1 and later are not vulnerable. |
| Impact | The source CVSS 3.1 score is 9.6 (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L), reflecting network reach, low complexity, a scope change (script runs in a victim/admin browser context), and the requirement that a victim open the pad. Note a tension worth verifying: the vector uses PR:N (unauthenticated) while the description states 'any user with write access to a pad' must store the payload - this is reconcilable because default Etherpad deployments allow anonymous pad editing, but hardened instances that gate write access behind authentication effectively raise the bar to PR:L, so real-world risk depends on deployment. No EPSS score, KEV listing, or SSVC decision data was provided, so exploitation probability and automatability cannot be quantified from the input. There is no public exploit identified at time of analysis and no evidence of active exploitation; however, the impact is genuinely high because a low-privileged pad editor can escalate to full compromise of an administrator's session. This is a real priority for any multi-user or public Etherpad instance, especially where import is enabled. |
| Exploit ScenarioDerived | An attacker with write access to a pad (anonymous by default on an unhardened instance) imports a crafted .etherpad file whose attribute pool defines a numbered-list line with a start value of 1><svg/onload=alert(document.domain)>. The value is stored and, when a moderator or administrator later opens the pad or the /timeslider replay view, the browser parses the injected markup and runs the attacker's JavaScript in that privileged session. The vendor's own regression test demonstrates exactly this payload, so a working proof-of-concept effectively exists in the fix commit even though no separate public exploit was catalogued. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Stored cross-site scripting in Etherpad before 3.3.1 lets any user with write access to a pad execute arbitrary JavaScript in the browser of anyone - including an administrator - who later opens the pad or its /timeslider view. The root cause is the numbered-list rendering path interpolating an attacker-controlled ordered-list 'start' value, sourced from a crafted .etherpad import, directly into unquoted markup assigned to innerHTML. A vendor patch exists in 3.3.1; no public exploit identified at time of analysis, though the vendor's regression test embeds a working payload.
RemediationAI
Vendor-released patch: upgrade to Etherpad 3.3.1, which coerces the ordered-list start value to an integer and HTML-escapes it before rendering (fix commit d828185efcac9abc2e46e6da1c171393500fa319 via PR https://github.com/ether/etherpad/pull/7937; advisory https://github.com/ether/etherpad/security/advisories/GHSA-f7h5-v9hm-548j). If immediate upgrade is not possible, disable or restrict the pad import feature, since the .etherpad import via ImportEtherpad.setPadRaw is the injection entry point - the trade-off is loss of import/migration functionality for legitimate users. Additionally require authentication for pad write access rather than allowing anonymous editing, which removes the unauthenticated attack surface at the cost of open collaboration, and consider a Content-Security-Policy forbidding inline script execution to blunt the payload, noting that some Etherpad plugins may rely on inline handlers and could break.
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
Etherpad is a Node.js/TypeScript real-time collaborative document editor whose text lines carry formatting via an 'attribute pool.' The client-side sink src/static/js/domline.ts (result.appendSpan) builds an ordered-list element by concatenating the numbered-list 'start' value into an <ol start=...> tag with no quoting and no HTML-escaping, then assigns the resulting string to node.innerHTML. Because src/node/utils/ImportEtherpad.ts (setPadRaw) trusts attribute-pool values (e.g. list:number1 with a chosen start) from an imported .etherpad file, an attacker controls that interpolated value. This is a classic CWE-79 (Improper Neutralization of Input During Web Page Generation) DOM-sink injection: a value such as 1><svg/onload=alert(document.domain)> breaks out of the unquoted attribute and is parsed as live markup. The single affected CPE is cpe:2.3:a:ether:etherpad. The fix coerces start to an integer via Number.parseInt and applies Security.escapeHTMLAttribute defensively.
Know when Etherpad 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:H/I:H/A:L
Default Etherpad allows anonymous pad writes (PR:N); a victim must open the pad (UI:R); script escapes into another user's/admin session (S:C) with high confidentiality and integrity impact and limited availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Etherpad is a real-time collaborative editor. Prior to 3.3.1, result.appendSpan in src/static/js/domline.ts interpolates the start attribute of a numbered list directly into an unquoted ol start attribute before assigning the generated markup to node.innerHTML. ImportEtherpad.setPadRaw in src/node/utils/ImportEtherpad.ts accepts attacker-controlled attribute-pool values from a crafted .etherpad import, including list:number1 and a malicious start value. Any user with write access to a pad can store markup that executes as cross-site scripting when another user opens the pad or /timeslider, including when an administrator views the pad. This issue is fixed in version 3.3.1.
Executive ViewAI
Etherpad versions prior to 3.3.1 contain a stored cross-site scripting vulnerability that allows any user with write access to inject malicious code into collaborative documents, which then executes in the browsers of all users who view the affected pad, including administrators. This enables attackers to steal session credentials, compromise administrative accounts, and manipulate business-critical documents. Organizations relying on Etherpad for team collaboration face immediate risk of unauthorized data access and integrity compromise.
Apply vendor patch.
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.
Etherpad Lite before 1.6.4 is exploitable for admin access. Rated critical severity (CVSS 9.8), this vulnerability is re
An Argument Injection issue in the plugin management of Etherpad 1.8.13 allows privileged users to execute arbitrary cod
A Cross-Site Scripting (XSS) issue in the chat component of Etherpad 1.8.13 allows remote attackers to inject arbitrary
Privilege escalation to administrative API access in Etherpad 2.1.0 through 3.0.x lets any authenticated non-admin OAuth
Etherpad 1.6.3 before 1.6.4 allows an attacker to execute arbitrary code. Rated critical severity (CVSS 9.8), this vulne
node/hooks/express/apicalls.js in Etherpad Lite before v1.6.3 mishandles JSONP, which allows remote attackers to bypass
Etherpad is a real-time collaborative editor. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable
Directory traversal vulnerability in node/utils/Minify.js in Etherpad 1.1.1 through 1.5.2 allows remote attackers to rea
Etherpad 1.5.x and 1.6.x before 1.6.4 allows an attacker to execute arbitrary code on the server. Rated high severity (C
Directory traversal vulnerability in node/hooks/express/tests.js in Etherpad frontend tests before 1.6.1. Rated high sev
Etherpad 1.5.x and 1.6.x before 1.6.4 allows an attacker to export all the existing pads of an instance without knowledg
templates/pad.html in Etherpad-Lite 1.7.5 has XSS when the browser does not encode the path of the URL, as demonstrated
EUVD-2026-62740
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB