GHSA-246w-56m2-5899
Vulnerability from github
5.1 (Medium) - CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N
Impact
The password reset endpoint served via Synapse was vulnerable to cross-site scripting (XSS) attacks. The impact depends on the configuration of the domain that Synapse is deployed on, but may allow access to cookies and other browser data, CSRF vulnerabilities, and access to other resources served on the same domain or parent domains.
Patches
This is fixed in #9200.
Workarounds
Depending on the needs and configuration of the homeserver a few options are available:
-
Password resets can be disabled by delegating email to a third-party service (via the
account_threepid_delegates.email
setting) or disabling email (by not configuring theemail
setting). -
If the homeserver is not configured to use passwords (via the
password_config.enabled
setting) then the affected endpoint can be blocked at a reverse proxy:/_synapse/client/password_reset/email/submit_token
-
The
password_reset_confirmation.html
template can be overridden with a custom template that manually escapes the variables using JInja2'sescape
filter. See theemail.template_dir
setting.
{ "affected": [ { "package": { "ecosystem": "PyPI", "name": "matrix-synapse" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "1.27.0" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2021-21332" ], "database_specific": { "cwe_ids": [ "CWE-79" ], "github_reviewed": true, "github_reviewed_at": "2021-03-26T19:52:12Z", "nvd_published_at": "2021-03-26T20:15:00Z", "severity": "MODERATE" }, "details": "### Impact\nThe password reset endpoint served via Synapse was vulnerable to cross-site scripting (XSS) attacks. The impact depends on the configuration of the domain that Synapse is deployed on, but may allow access to cookies and other browser data, CSRF vulnerabilities, and access to other resources served on the same domain or parent domains.\n\n### Patches\nThis is fixed in #9200.\n\n### Workarounds\nDepending on the needs and configuration of the homeserver a few options are available:\n\n1. Password resets can be disabled by delegating email to a third-party service (via the `account_threepid_delegates.email` setting) or disabling email (by not configuring the `email` setting).\n\n2. If the homeserver is not configured to use passwords (via the `password_config.enabled` setting) then the affected endpoint can be blocked at a reverse proxy:\n\n * `/_synapse/client/password_reset/email/submit_token`\n\n3. The `password_reset_confirmation.html` template can be overridden with a custom template that manually escapes the variables using [JInja2\u0027s `escape` filter](https://jinja.palletsprojects.com/en/2.11.x/templates/#escape). See the `email.template_dir` setting.", "id": "GHSA-246w-56m2-5899", "modified": "2024-09-30T20:30:17Z", "published": "2021-03-26T19:52:54Z", "references": [ { "type": "WEB", "url": "https://github.com/matrix-org/synapse/security/advisories/GHSA-246w-56m2-5899" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-21332" }, { "type": "WEB", "url": "https://github.com/matrix-org/synapse/pull/9200" }, { "type": "WEB", "url": "https://github.com/matrix-org/synapse/commit/e54746bdf7d5c831eabe4dcea76a7626f1de73df" }, { "type": "PACKAGE", "url": "https://github.com/matrix-org/synapse" }, { "type": "WEB", "url": "https://github.com/matrix-org/synapse/releases/tag/v1.27.0" }, { "type": "WEB", "url": "https://github.com/pypa/advisory-database/tree/main/vulns/matrix-synapse/PYSEC-2021-133.yaml" }, { "type": "WEB", "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TNNAJOZNMVMXM6AS7RFFKB4QLUJ4IFEY" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N", "type": "CVSS_V3" }, { "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N", "type": "CVSS_V4" } ], "summary": "Cross-site scripting (XSS) vulnerability in the password reset endpoint" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.