highVulnerability

CVE-2026-55090

Fix: PR #7905 (ether/etherpad). `getHTMLFromAtext` in `src/node/utils/ExportHtml.ts` interpolates values from the `exportHtmlAdditionalTagsWithData` plugin hook into `span data-<k>="<v>"` without HTML-attribute escaping. The value comes verbatim from the pad attribute pool, which a pad editor controls via a crafted changeset (only `author` attributes are validated; `moveOpsToNewPool` -> `AttributePool.putAttrib` stores any value). With a bundled plugin that registers the hook (ep_font_color / ep_font_size), an attribute value such as `" onload="alert(1)` is exported as `<span data-color="" onload="alert(1)">` and served as text/html, yielding stored XSS for any collaborator who opens the export. Fix: escape the name and value via `Security.escapeHTMLAttribute`. PR #7905 also adds a startup warning when default/placeholder account or SSO credentials are configured (defense-in-depth, non-breaking).

Properties

ghsa_id
GHSA-2jp7-wwpg-3p9w
severity
high
summary
Etherpad has stored XSS in HTML export via unescaped attribute-pool values
cve_id
CVE-2026-55090
is_ghsa_only
false
ghsa_published
2026-08-17T17:49:38Z
source_url
https://github.com/advisories/GHSA-2jp7-wwpg-3p9w
ghsa_updated
2026-08-17T17:49:39Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]npm/ep_etherpad-lite

AFFECTS (1)

[Software]npm/ep_etherpad-lite

HAS_WEAKNESS (1)

[Weakness]Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph