CVE-2024-42369 json
A room with itself as a its predecessor will freeze matrix-js-sdk
published 2024-08-20 2 y ago modified 2026-06-17 4 mo ago also EUVD-2024-2665 , GHSA-vhr5-g3pm-49fm
- cvss
- 4.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 41%
- public exploits
- 0
- none known
Summary
matrix-js-sdk is a Matrix messaging protocol Client-Server SDK for JavaScript. A malicious homeserver can craft a room or room structure such that the predecessors form a cycle. The matrix-js-sdk's getRoomUpgradeHistory function will infinitely recurse in this case, causing the code to hang. This method is public but also called by the 'leaveRoomChain()' method, so leaving a room will also trigger the bug. This was patched in matrix-js-sdk 34.3.1.
Patch / fix
- npm matrix-js-sdk 34.3.1
- matrix javascript_sdk 34.3.1
- element-desktop openSUSE Tumbleweed 1.11.75-1.1
- element-web openSUSE Tumbleweed 1.11.75-1.1
opensuse advisories openSUSE-SU-2024:14288-1openSUSE-SU-2024:14289-1
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 41% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:N/A:L |
| GitHub | 3.1 | 4.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:N/A:L |
| NVD | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | matrix-js-sdk | <34.3.1 |
34.3.1 |
Affected products
- matrix-org matrix-js-sdk
Classification
- Weakness
-
- CWE-674 Uncontrolled Recursion
References
Sources
- CVE List CVE-2024-42369
- GitHub Advisory GHSA-vhr5-g3pm-49fm
- NVD CVE-2024-42369
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.