{"id":"CVE-2022-39251","summary":"Matrix Javascript SDK vulnerable to Olm/Megolm protocol confusion","details":"Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Prior to version 19.7.0, an attacker cooperating with a malicious homeserver can construct messages that legitimately appear to have come from another person, without any indication such as a grey shield. Additionally, a sophisticated attacker cooperating with a malicious homeserver could employ this vulnerability to perform a targeted attack in order to send fake to-device messages appearing to originate from another user. This can allow, for example, to inject the key backup secret during a self-verification, to make a targeted device start using a malicious key backup spoofed by the homeserver. These attacks are possible due to a protocol confusion vulnerability that accepts to-device messages encrypted with Megolm instead of Olm. Starting with version 19.7.0, matrix-js-sdk has been modified to only accept Olm-encrypted to-device messages. Out of caution, several other checks have been audited or added. This attack requires coordination between a malicious home server and an attacker, so those who trust their home servers do not need a workaround.","aliases":["GHSA-r48r-j8fx-mq2c"],"modified":"2026-04-16T04:40:15.139717876Z","published":"2022-09-28T00:00:00Z","related":["ALSA-2022:7178","ALSA-2022:7190","SUSE-SU-2022:3800-1","openSUSE-SU-2024:12374-1","openSUSE-SU-2024:12375-1","openSUSE-SU-2024:12379-1"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/39xxx/CVE-2022-39251.json","cwe_ids":["CWE-287","CWE-322"],"cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/matrix-org/matrix-js-sdk/releases/tag/v19.7.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/39xxx/CVE-2022-39251.json"},{"type":"ADVISORY","url":"https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-r48r-j8fx-mq2c"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-39251"},{"type":"ADVISORY","url":"https://security.gentoo.org/glsa/202210-35"},{"type":"FIX","url":"https://github.com/matrix-org/matrix-js-sdk/commit/a587d7c36026fe1fcf93dfff63588abee359be76"},{"type":"ARTICLE","url":"https://matrix.org/blog/2022/09/28/upgrade-now-to-address-encryption-vulns-in-matrix-sdks-and-clients"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/matrix-org/matrix-js-sdk","events":[{"introduced":"0"},{"fixed":"2d067ad95778b26aed24b801be0951e215c3ac8c"}]}],"versions":["v0.1.0","v0.1.1","v0.10.2","v0.10.2-rc.1","v0.10.3","v0.10.3-rc.1","v0.10.5","v0.10.5-rc.1","v0.10.7","v0.10.7-rc.1","v0.11.0","v0.11.0-rc.1","v0.2.0","v0.2.1","v0.2.2","v0.4.1","v0.4.2","v0.5.0","v0.5.1","v0.5.2","v0.5.3","v0.5.4","v0.5.5","v0.5.6","v0.6.0-rc1","v0.6.0-rc2","v0.6.1","v0.6.2","v0.6.4","v0.6.4-rc.2","v0.7.1-rc.1","v0.7.10","v0.7.2","v0.7.4","v0.7.4-rc.1","v0.7.9","v0.8.0","v0.8.1","v0.8.1-rc.1","v0.8.2","v0.8.3","v0.8.3-rc.1","v1.0.0","v1.0.0-rc.1","v1.0.0-rc.2","v19.6.0","v19.6.0-rc.1","v2.0.1","v2.0.1-rc.1","v2.0.1-rc.2","v2.4.1","v5.0.1","v7.1.0","v7.1.0-rc.1","v8.0.0","v8.1.0","v8.1.0-rc.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-39251.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N"}]}