HTML injection in email and account expiry notifications
Moderate severity
GitHub Reviewed
Published
Mar 25, 2021
in
matrix-org/synapse
•
Updated Sep 30, 2024
Description
Reviewed
Mar 26, 2021
Published to the GitHub Advisory Database
Mar 26, 2021
Published by the National Vulnerability Database
Mar 26, 2021
Last updated
Sep 30, 2024
Impact
The notification emails sent for notifications for missed messages or for an expiring account are subject to HTML injection. In the case of the notification for missed messages, this could allow an attacker to insert forged content into the email.
The account expiry feature is not enabled by default and the HTML injection is not controllable by an attacker.
Patches
This issue is fixed in #9200.
Workarounds
For the missed messages notifications:
The
notif.html
,notif_mail.html
, androom.html
templates can be overridden with custom templates that manually escapes the variables using JInja2'sescape
filter. See theemail.template_dir
setting.For the account expiry notifications:
Account expiry can be disabled via the
account_validity.enabled
setting.The
notice_expiry.html
template can be overridden with a custom template that manually escapes the variables using JInja2'sescape
filter. See theemail.template_dir
setting.References