CVE-2021-40823: Infoleak
Impact
A logic error in the room key sharing functionality of matrix-js-sdk before 12.4.1 allows a malicious Matrix homeserver† participating in an encrypted room to steal room encryption keys from affected Matrix clients participating in that room. This allows the homeserver to decrypt end-to-end encrypted messages sent by affected clients.
† Or anyone with access to the account of the original recipient of an encrypted message.
Known clients affected (via their use of vulnerable versions of matrix-js-sdk):
- Element Web (1.8.2 and earlier) - Element Desktop (1.8.2 and earlier) - SchildiChat Web (1.7.32-sc1 and earlier) - SchildiChat Desktop (1.7.32-sc1 and earlier) - Cinny (1.2.0 and earlier)
Patch
This was fixed in https://github.com/matrix-org/matrix-js-sdk/commit/894c24880da0e1cc81818f51c0db80e3c9fb2be9.
Workarounds To prevent a homeserver from being able to steal the room keys, vulnerable clients can be taken offline or signed out. If signing out, care should be taken to either set up Secure Backup or export E2E room keys in order to preserve access to past messages.
Other sources
A logic error in the room key sharing functionality of matrix-js-sdk (aka Matrix Javascript SDK) before 12.4.1 allows a malicious Matrix homeserver present in an encrypted room to steal room encryption keys (via crafted Matrix protocol messages) that were originally sent by affected Matrix clients participating in that room. This allows the homeserver to decrypt end-to-end encrypted messages sent by affected clients.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/matrix-js-sdkto a version that resolves this vulnerability.Fixed in 12.4.1 - Upgrade
Upgrade
matrix-js-sdkto a version that resolves this vulnerability.Fixed in 12.4.1Patch 894c24880da0e1cc81818f51c0db80e3c9fb2be9 - Compensating control
Take vulnerable Matrix clients offline (Cinny 1.2.0 and earlier; Element Desktop 1.8.2 and earlier; Element Web 1.8.2 and earlier; SchildiChat Desktop 1.7.32-sc1 and earlier; SchildiChat Web 1.7.32-sc1 and earlier) to prevent a malicious homeserver from stealing room encryption keys.
- Compensating control
Sign out vulnerable clients (Cinny 1.2.0 and earlier; Element Desktop 1.8.2 and earlier; Element Web 1.8.2 and earlier; SchildiChat Desktop 1.7.32-sc1 and earlier; SchildiChat Web 1.7.32-sc1 and earlier) to prevent a malicious homeserver from stealing room encryption keys. If signing out, set up Secure Backup or export E2E room keys to preserve access to past messages.
Event History
Frequently Asked Questions
What is CVE-2021-40823?
CVE-2021-40823 is a vulnerability in the room key sharing functionality of matrix-js-sdk (aka Matrix Javascript SDK) before version 12.4.1.
What is the impact of CVE-2021-40823?
The vulnerability allows a malicious Matrix homeserver to steal room encryption keys from affected Matrix clients participating in an encrypted room.
How can a malicious Matrix homeserver exploit CVE-2021-40823?
A malicious Matrix homeserver can exploit the vulnerability by participating in an encrypted room and stealing room encryption keys from affected Matrix clients.
What is the severity of CVE-2021-40823?
The severity of CVE-2021-40823 is medium with a CVSS severity score of 5.9.
How can I fix CVE-2021-40823?
To fix CVE-2021-40823, update to version 12.4.1 or later of matrix-js-sdk.