Description
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.
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:LWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| ether | etherpad | < 3.3.1 |
References
- https://github.com/ether/etherpad/commit/d828185efcac9abc2e46e6da1c171393500fa319
- https://github.com/ether/etherpad/pull/7937
- https://github.com/ether/etherpad/releases/tag/v3.3.1
- https://github.com/ether/etherpad/security/advisories/GHSA-f7h5-v9hm-548j
- https://github.com/ether/etherpad/security/advisories/GHSA-f7h5-v9hm-548j
Timeline
- Published
- Aug 19, 2026
- Last modified
- Sep 9, 2026
- NVD status
- Deferred