matrix-org/matrix-js-sdk · Security
matrix-js-sdk has insufficient validation when considering a room to be upgraded by another
- GHSA ID
- GHSA-mp7c-m3rh-r56v
- CVE ID
- CVE-2025-59160
- Severity
- medium
- Published
- Updated
- CVSS v4
- 6.9 · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Description
Impact
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.
Patches
The issue has been patched and users should upgrade to 38.2.0.
Workarounds
Avoid using MatrixClient::getJoinedRooms in favour of getRooms() and filtering upgraded rooms separately.
CWEs
- CWE-20 · Improper Input Validation
- CWE-345 · Insufficient Verification of Data Authenticity
- CWE-862 · Missing Authorization
References
- https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-mp7c-m3rh-r56v ↗
- https://nvd.nist.gov/vuln/detail/CVE-2025-59160 ↗
- https://github.com/matrix-org/matrix-js-sdk/commit/43c72d5bf5e2d0a26b3b4f71092e7cb39d4137c4 ↗
- 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 ↗
- https://github.com/advisories/GHSA-mp7c-m3rh-r56v ↗