CVE-2023-32682: Improper checks for deactivated users during login in synapse
Impact It may be possible for a deactivated user to login when using uncommon configurations.
This only applies if any of the following are true:
JSON Web Tokens are enabled for login via the jwtconfig.enabled configuration setting The local password database is enabled via the passwordconfig.enabled and passwordconfig.localdbenabled configuration settings and a user's password is updated via an admin API after a user is deactivated.
Note that the local password database is enabled by default, but it is uncommon to set a user's password after they've been deactivated.
Installations that are configured to only allow login via Single Sign-On (SSO) via CAS, SAML or OpenID Connect (OIDC); or via an external password provider (e.g. LDAP) are not affected.
Patches
If using JSON Web Token logins: #15624 For other users: #15634
Workarounds
If not using JSON Web Tokens, ensure that deactivated users do not have a password set. This list of users can be queried from PostgreSQL:
sql SELECT name FROM users WHERE passwordhash IS NOT NULL AND deactivated = 1;
Other sources
Synapse is a Matrix protocol homeserver written in Python with the Twisted framework. In affected versions it may be possible for a deactivated user to login when using uncommon configurations. This only applies if any of the following are true: 1. JSON Web Tokens are enabled for login via the jwtconfig.enabled configuration setting. 2. The local password database is enabled via the passwordconfig.enabled and passwordconfig.localdbenabled configuration settings and a user's password is updated via an admin API after a user is deactivated. Note that the local password database is enabled by default, but it is uncommon to set a user's password after they've been deactivated. Installations that are configured to only allow login via Single Sign-On (SSO) via CAS, SAML or OpenID Connect (OIDC); or via an external password provider (e.g. LDAP) are not affected. If not using JSON Web Tokens, ensure that deactivated users do not have a password set. This issue has been addressed in version 1.85.0. Users are advised to upgrade.
Affected Software
Remediation
Patch Available
Patch Available
Event History
Frequently Asked Questions
What is CVE-2023-32682?
CVE-2023-32682 is a vulnerability in Synapse, a Matrix protocol homeserver written in Python, that allows a deactivated user to login when using uncommon configurations.
What is the severity of CVE-2023-32682?
CVE-2023-32682 has a severity score of 5.4, which is considered medium.
How does CVE-2023-32682 affect Synapse?
CVE-2023-32682 affects Synapse versions up to and excluding 1.85.0.
How can this vulnerability be exploited?
This vulnerability can be exploited when JSON Web Tokens are enabled for login via the `jwt_` configuration option and uncommon configurations are used.
Is there a fix for CVE-2023-32682?
Yes, the fix for CVE-2023-32682 is available in the following pull requests: [PR 15624](https://github.com/matrix-org/synapse/pull/15624) and [PR 15634](https://github.com/matrix-org/synapse/pull/15634).