Lucene search

K
osvGoogleOSV:GHSA-246W-56M2-5899
HistoryMar 26, 2021 - 7:52 p.m.

Cross-site scripting (XSS) vulnerability in the password reset endpoint

2021-03-2619:52:54
Google
osv.dev
19
synapse
cross-site scripting
vulnerability
password reset
csrf
cookies
configuration
email
delegation
third-party service
reverse proxy
template override
jinja2
filter
security patch

EPSS

0.001

Percentile

40.3%

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.