Vulnerability advisory

CVE-2022-39249

Matrix Javascript SDK vulnerable to impersonation via forwarded Megolm sessions

Published Updated OSV record ↗

Also known as GHSA-6263-x97c-c4gg

Severity
  • CVSS 3.xCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Affected versions

Repository

Affected commitsFixed by commit
GIT github.com/matrix-org/matrix-js-sdk ↗
All commits before 2d067ad95778b26aed24b801be0951e215c3ac8c2d067ad95778b26aed24b801be0951e215c3ac8c
Not specifieda587d7c36026fe1fcf93dfff63588abee359be76
Also listed as affected (57)
  • v19.6.0
  • v19.6.0-rc.1
  • v8.1.0
  • v8.1.0-rc.1
  • v8.0.0
  • v7.1.0
  • v7.1.0-rc.1
  • v5.0.1
  • v2.4.1
  • v2.0.1
  • v2.0.1-rc.2
  • v2.0.1-rc.1
  • v1.0.0
  • v1.0.0-rc.2
  • v1.0.0-rc.1
  • v0.11.0
  • v0.11.0-rc.1
  • v0.10.7
  • v0.10.7-rc.1
  • v0.10.5
  • v0.10.5-rc.1
  • v0.10.3
  • v0.10.2
  • v0.10.3-rc.1
  • v0.10.2-rc.1
  • v0.8.3
  • v0.8.3-rc.1
  • v0.8.2
  • v0.8.1
  • v0.8.1-rc.1
  • v0.8.0
  • v0.7.10
  • v0.7.9
  • v0.7.4
  • v0.7.4-rc.1
  • v0.7.2
  • v0.7.1-rc.1
  • v0.6.4
  • v0.6.4-rc.2
  • v0.6.2
  • v0.6.1
  • v0.6.0-rc2
  • v0.6.0-rc1
  • v0.5.6
  • v0.5.5
  • v0.5.4
  • v0.5.3
  • v0.5.2
  • v0.5.1
  • v0.5.0
  • v0.4.2
  • v0.4.1
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.1
  • v0.1.0

Description

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 appearing to have come from another person. Such messages will be marked with a grey shield on some platforms, but this may be missing in others. This attack is possible due to the matrix-js-sdk implementing a too permissive key forwarding strategy on the receiving end. Starting with version 19.7.0, the default policy for accepting key forwards has been made more strict in the matrix-js-sdk. matrix-js-sdk will now only accept forwarded keys in response to previously issued requests and only from own, verified devices. The SDK now sets a trusted flag on the decrypted message upon decryption, based on whether the key used to decrypt the message was received from a trusted source. Clients need to ensure that messages decrypted with a key with trusted = false are decorated appropriately, for example, by showing a warning for such messages. This attack requires coordination between a malicious homeserver and an attacker, and those who trust your homeservers do not need a workaround.

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools