GitHub Advisoryadvisory · PyPI
GHSA-246w-56m2-5899 Cross-site scripting (XSS) vulnerability in the password reset endpoint
MEDIUM
Official page ↗
- Aliases
- CVE-2021-21332
- Ecosystem
- PyPI
- Packages
- matrix-synapse
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2021-03-26
Affected packages
• PyPI matrix-synapse: < 1.27.0 → fixed in 1.27.0
Description
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:
1. 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).
2. 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`
3. The `password_reset_confirmation.html` template can be overridden with a custom template that manually escapes the variables using JInja2's `escape` filter. See the `email.template_dir` setting.
Related
Alias · CVE (1)
- CVE-2021-21332 Synapse is a Matrix reference homeserver written in python (pypi package matrix-synapse). vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/matrix-org/synapse/security/advisories/GHSA-246w-56m2-5899 web
- https://nvd.nist.gov/vuln/detail/CVE-2021-21332 advisory
- https://github.com/matrix-org/synapse/pull/9200 web
- https://github.com/matrix-org/synapse/commit/e54746bdf7d5c831eabe4dcea76a7626f1de73df web
- https://github.com/matrix-org/synapse package
- https://github.com/matrix-org/synapse/releases/tag/v1.27.0 web
- https://github.com/pypa/advisory-database/tree/main/vulns/matrix-synapse/PYSEC-2021-133.yaml web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/TNNAJOZNMVMXM6AS7RFFKB4QLUJ4IFEY web