matrix-js-sdk has insufficient validation when considering a room to be upgraded by another
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-345.
Summary
Matrix JavaScript SDK is a Matrix Client-Server SDK for JavaScript and TypeScript. matrix-js-sdk before 38.2.0 has insufficient validation of room predecessor links in MatrixClient::getJoinedRooms, allowing a remote attacker to attempt to replace a tombstoned room with an unrelated attacker-supplied room. The issue has been patched and users should upgrade to 38.2.0. A workaround is to avoid using MatrixClient::getJoinedRooms in favor of getRooms() and filtering upgraded rooms separately.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| matrix-org | matrix-js-sdk | before 38.2.0 | 38.2.0 | Patch available | CNA |
| — | matrix-js-sdk (npm) | before 38.2.0 | 38.2.0 | Patch available | GHSA-mp7c-m3rh-r56v |
- matrix-js-sdk Vendormatrix-org Affected before 38.2.0 Fixed in 38.2.0 Patch available CNA
- matrix-js-sdk (npm) Vendor— Affected before 38.2.0 Fixed in 38.2.0 Patch available GHSA-mp7c-m3rh-r56v
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:matrix:javascript_sdk:*:*:*:*:*:*:*:* | — | — | matrix-org |
- cpe:2.3:a:matrix:javascript_sdk:*:*:*:*:*:*:*:* Versions — — ·matrix-org
Remediation
- Fix · CNA matrix-js-sdk (matrix-org) Fixed in 38.2.0
- Fix · GHSA-mp7c-m3rh-r56v matrix-js-sdk (npm) Fixed in 38.2.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2025-59160
- 2026-10-03 Alias added: GHSA-mp7c-m3rh-r56v
References
Other 5
- https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-mp7c-m3rh-r56v
- https://github.com/matrix-org/matrix-js-sdk/commit/43c72d5bf5e2d0a26b3b4f71092e7cb39d4137c4
- https://github.com/matrix-org/matrix-js-sdk
- https://github.com/matrix-org/matrix-js-sdk/releases/tag/v38.2.0
- https://www.npmjs.com/package/matrix-js-sdk/v/38.2.0
More matrix-org vulnerabilities
- TI-2023-20035 Sydent does not verify email server certificates CVSS 3.1CRITICAL 9.3
- TI-2026-45046 Dendrite 0.13.8 SSRF via Unauthenticated Legacy Media Download Endpoint CVSS 4.0MEDIUM 6.9
- TI-2026-45045 Dendrite 0.13.8 Improper Authorization via POST account/3pid/delete Endpoint CVSS 4.0HIGH 7.1
- TI-2026-45047 Dendrite 0.13.8 syncapi /context Endpoint Post-Leave State Exposure CVSS 4.0MEDIUM 5.3
- TI-2023-15617 Synapse Outgoing federation to specific hosts can be disabled by sending malicious invites CVSS 3.1MEDIUM 5.0
- TI-2023-20039 matrix-appservice-irc IRC command injection via admin commands containing newlines CVSS 3.1CRITICAL 9.8
Sources
- CVE-2025-59160 · CVE Program
- CVE-2025-59160 · NVD
- FIRST EPSS
- GHSA-mp7c-m3rh-r56v · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences