Skip to content

Update dependency matrix-js-sdk to v38 [SECURITY]#366

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-matrix-js-sdk-vulnerability
Open

Update dependency matrix-js-sdk to v38 [SECURITY]#366
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-matrix-js-sdk-vulnerability

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Oct 15, 2024

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
matrix-js-sdk ^25.0.0^38.0.0 age confidence

matrix-js-sdk will freeze when a user sets a room with itself as a its predecessor

CVE-2024-42369 / GHSA-vhr5-g3pm-49fm

More information

Details

Impact

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.

Even if the CVSS score would be 4.1 (AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:N/A:L) we classify this as High severity issue.

Patches

This was patched in matrix-js-sdk 34.3.1.

Workarounds

Sanity check rooms before passing them to the matrix-js-sdk or avoid calling either getRoomUpgradeHistory or leaveRoomChain.

References

N/A.

Severity

  • CVSS Score: 5.1 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Matrix JavaScript SDK's key history sharing could share keys to malicious devices

CVE-2024-47080 / GHSA-4jf8-g8wp-cx7c

More information

Details

Impact

In matrix-js-sdk versions 9.11.0 through 34.7.0, the method MatrixClient.sendSharedHistoryKeys is vulnerable to interception by malicious homeservers. The method implements functionality proposed in MSC3061 and can be used by clients to share historical message keys with newly invited users, granting them access to past messages in the room.

However, it unconditionally sends these "shared" keys to all of the invited user's devices, regardless of whether the user's cryptographic identity is verified or whether the user's devices are signed by that identity. This allows the attacker to potentially inject its own devices to receive sensitive historical keys without proper security checks.

Note that this only affects clients running the SDK with the legacy crypto stack. Clients using the new Rust cryptography stack (i.e. those that call MatrixClient.initRustCrypto() instead of MatrixClient.initCrypto()) are unaffected by this vulnerability, because MatrixClient.sendSharedHistoryKeys() raises an exception in such environments.

Patches

Fixed in matrix-js-sdk 34.8.0 by removing the vulnerable functionality.

Workarounds

Remove use of affected functionality from clients.

References
For more information

If you have any questions or comments about this advisory, please email us at security at matrix.org.

Severity

  • CVSS Score: 8.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


matrix-js-sdk has insufficient MXC URI validation which allows client-side path traversal

CVE-2024-50336 / GHSA-xvg8-m4x3-w6xr

More information

Details

Summary

matrix-js-sdk before 34.11.0 is vulnerable to client-side path traversal via crafted MXC URIs. A malicious room member can trigger clients based on the matrix-js-sdk to issue arbitrary authenticated GET requests to the client's homeserver.

Details

The Matrix specification demands homeservers to perform validation of the server-name and media-id components of MXC URIs with the intent to prevent path traversal. However, it is not mentioned that a similar check must also be performed on the client to prevent client-side path traversal. matrix-js-sdk fails to perform this validation.

Patches

Fixed in matrix-js-sdk 34.11.1.

Workarounds

None.

References

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


matrix-js-sdk has insufficient validation when considering a room to be upgraded by another

CVE-2025-59160 / GHSA-mp7c-m3rh-r56v

More information

Details

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.

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: 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

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

matrix-org/matrix-js-sdk (matrix-js-sdk)

v38.2.0

Compare Source

==================================================================================================
Fix CVE-2025-59160 / GHSA-mp7c-m3rh-r56v

v38.1.0

Compare Source

==================================================================================================

✨ Features

  • Remove custom org.matrix.msc4075.rtc.notification.parent relation type (#​4979). Contributed by @​toger5.
  • MatrixRTC: Add RTC decline event (#​4978). Contributed by @​toger5.
  • Make a MatrixRTCSession emit once the RTCNotification is sent (#​4976). Contributed by @​toger5.
  • Use hydra semantics for unknown room versions (#​4957). Contributed by @​dbkr.
  • Expose the StatusChanged event through the RTCSession (#​4974). Contributed by @​toger5.
  • Add probablyLeft event to the MatrixRTCSession (#​4962). Contributed by @​toger5.

🐛 Bug Fixes

v38.0.0

Compare Source

==================================================================================================

🚨 BREAKING CHANGES

  • Release tranche of breaking changes (#​4975).
  • Remove support for FetchHttpApi onlyData = false
  • Remove deprecated IJoinRoomOpts.syncRoom
  • Remove deprecated methods which are unsupported in rust crypto
  • Remove deprecated getAuthIssuer method
  • Remove deprecated beginKeyVerification method
  • Remove deprecated isEncryptedDisabledForUnverifiedDevices getter
  • Remove deprecated UndecryptableToDeviceEvent MatrixClient emit
  • Remove deprecated defer utility method
  • Remove deprecated UIAResponse dummy type
  • Remove deprecated MatrixRTCSession MembershipConfig fields
  • Remove deprecated findVerificationRequestDMInProgress and storeSessionBackupPrivateKey methods in favour of overloads

✨ Features

  • Allow multiple rtc sessions per room (with different sessionDescriptions) (#​4945). Contributed by @​toger5.
  • Add support for login_hint in authorization url generation (#​4943). Contributed by @​odelcroi.
  • Only process MatrixRTC sessions associated with calls for callMembershipsForRoom (#​4960). Contributed by @​fkwp.

v37.13.0

Compare Source

====================================================================================================
This release supports new v12 Matrix rooms and consequently has a breaking change, removing powerLevelNorm from the RoomMember object as this can't be supported with infinite power levels. Apps should use the non-normalised powerLevel instead.

🚨 BREAKING CHANGES

✨ Features

  • [Backport staging] Support v12 rooms in maySendEvent (#​4956). Contributed by @​RiotRobot.
  • [Backport staging] Support for creator power level (#​4954). Contributed by @​RiotRobot.
  • Experimental support for sharing encrypted history on invite (#​4920). Contributed by @​richvdh.
  • Use the logger associated with MatrixClient in rust sdk (#​4918). Contributed by @​richvdh.
  • Update to matrix-sdk-crypto-wasm 15.1.0, and add new ShieldStateCode.MismatchedSender (#​4916). Contributed by @​richvdh.

🐛 Bug Fixes

  • Fix unknown/broken state in the RTC Membership Manager causing unnecassary error logging. (#​4944). Contributed by @​toger5.

v37.12.0

Compare Source

====================================================================================================

🦖 Deprecations

✨ Features

  • Custom abort timeout logic for restarting delayed events that is compatible with the widget api (#​4927). Contributed by @​toger5.
  • Allow sending notification events when starting a call (#​4826). Contributed by @​robintown.

🐛 Bug Fixes

v37.11.0

Compare Source

====================================================================================================

✨ Features

v37.10.0

Compare Source

====================================================================================================

✨ Features

v37.9.0

Compare Source

==================================================================================================

🐛 Bug Fixes

  • Ensure we send spec-compliant filter strings by stripping out null values (#​4865). Contributed by @​t3chguy.
  • Fix MatrixRTC membership manager failing to rejoin in a race condition (sync vs not found response) (#​4861). Contributed by @​toger5.
  • Include extraParams in all HTTP requests (#​4860). Contributed by @​rsb-tbg.

v37.8.0

Compare Source

==================================================================================================

🐛 Bug Fixes

v37.7.0

Compare Source

==================================================================================================

🦖 Deprecations

✨ Features

  • Allow the embedded client to work without update_state support (#​4849). Contributed by @​robintown.
  • Check for unknown variant on to-device sending and fall back to room event encryption. (#​4847). Contributed by @​toger5.
  • Reapply "Distinguish room state and timeline events in embedded clients" (#​4790). Contributed by @​robintown.

v37.6.0

Compare Source

==================================================================================================

🦖 Deprecations

  • Deprecate utils function defer in favour of Promise.withResolvers (#​4829). Contributed by @​t3chguy.

✨ Features

🐛 Bug Fixes

v37.5.0

Compare Source

==================================================================================================

✨ Features

🐛 Bug Fixes

  • [Backport staging] Fix token refresh behaviour for non-expired tokens (#​4827). Contributed by @​RiotRobot.
  • Refactor how token refreshing works to be more resilient (#​4819). Contributed by @​t3chguy.

v37.4.0

Compare Source

==================================================================================================

✨ Features

🐛 Bug Fixes

v37.3.0

Compare Source

==================================================================================================

✨ Features

  • MatrixRTC MembershipManger: remove redundant sendDelayedEventAction and expose status (#​4747). Contributed by @​toger5.
  • Abstract logout-causing error type from tokenRefreshFunction calls (#​4765). Contributed by @​t3chguy.
  • Improve PushProcessor::getPushRuleGlobRegex (#​4764). Contributed by @​t3chguy.
  • Export push processor & method for converting matrix glob to regexp (#​4763). Contributed by @​t3chguy.
  • Add authenticated media parameter to getMediaConfig (#​4762). Contributed by @​m004.
  • Rust crypto: set a timeout on outgoing HTTP requests (#​4761). Contributed by @​richvdh.
  • Switch sliding sync support to simplified sliding sync (#​4400). Contributed by @​dbkr.

v37.2.0

Compare Source

==================================================================================================

✨ Features

🐛 Bug Fixes

  • Allow port differing in OIDC dynamic registration URIs (#​4749). Contributed by @​t3chguy.
  • OIDC: only pass logo_uri, policy_uri, tos_uri if they conform to "common base" (#​4748). Contributed by @​t3chguy.

v37.1.0

Compare Source

==================================================================================================

🦖 Deprecations

  • MatrixRTC: MembershipManager test cases and deprecation of MatrixRTCSession.room (#​4713). Contributed by @​toger5.

✨ Features

🐛 Bug Fixes

v37.0.0

Compare Source

==================================================================================================

🚨 BREAKING CHANGES

🦖 Deprecations

✨ Features

🐛 Bug Fixes

v36.2.0

Compare Source

==================================================================================================

🦖 Deprecations

  • [Backport staging] Deprecate parameter and functions using legacy crypto in models/event.ts (#​4700). Contributed by @​RiotRobot.

✨ Features

🐛 Bug Fixes

v36.1.0

Compare Source

==================================================================================================

✨ Features

  • Deprecate MatrixClient.login and replace with loginRequest (#​4632). Contributed by @​richvdh.
  • Use SyncCryptoCallback api instead of legacy crypto in sliding sync (#​4624). Contributed by @​florianduros.
  • Distinguish room state and timeline events in embedded clients (#​4574). Contributed by @​robintown.
  • Allow setting default secret storage key id to null (#​4615). Contributed by @​florianduros.
  • Add authenticated media to getAvatarUrl in room and room-member models (#​4616). Contributed by @​m004.
  • Send MSC3981 'recurse' param on /relations endpoint on Matrix 1.10 servers (#​4023). Contributed by @​dbkr.

🐛 Bug Fixes

  • [Backport staging] Revert "Distinguish room state and timeline events in embedded clients (#​4574)" (#​4657). Contributed by @​RiotRobot.
  • Change randomString et al to be secure (#​4621). Contributed by @​dbkr.
  • Fix issue with sentinels being incorrect on m.room.member events (#​4609). Contributed by @​t3chguy.

v36.0.0

Compare Source

==================================================================================================

🚨 BREAKING CHANGES

  • Remove support for "legacy" MSC3898 group calling in MatrixRTCSession and CallMembership (#​4583). Contributed by @​toger5.

✨ Features

  • MatrixRTC: Implement expiry logic for CallMembership and additional test coverage (#​4587). Contributed by @​toger5.

🐛 Bug Fixes

v35.1.0

Compare Source

==================================================================================================
This release updates matrix-sdk-crypto-wasm to fix a bug which could prevent loading stored crypto state from storage.

🐛 Bug Fixes

  • Upgrade matrix-sdk-crypto-wasm to 1.11.0 (#​4593).

v35.0.0

Compare Source

==================================================================================================

🚨 BREAKING CHANGES

This release contains several breaking changes which will need code changes in your app. Most notably, initCrypto()
no longer exists and has been moved to initLegacyCrypto() in preparation for the eventual removal of Olm. You can
continue to use legacy Olm crypto for now by calling initLegacyCrypto() instead.

You may also need to make further changes if you use more advanced APIs. See the individual PRs (listed in order of size of change) for specific APIs changed and how to migrate.

🦖 Deprecations

  • Deprecate remaining legacy functions and move CryptoEvent.LegacyCryptoStoreMigrationProgress handler (#​4560). Contributed by @​florianduros.

✨ Features

  • Rename MatrixClient.initCrypto into MatrixClient.initLegacyCrypto (#​4567). Contributed by @​florianduros.
  • Avoid use of Buffer as it does not exist in the Web natively (#​4569). Contributed by @​t3chguy.
  • Re-send MatrixRTC media encryption keys for a new joiner even if a rotation is in progress (#​4561). Contributed by @​hughns.
  • Support MSC4222 state_after (#​4487). Contributed by @​dbkr.
  • Revert "Fix room state being updated with old (now overwritten) state and emitting for those updates. (#​4242)" (#​4532). Contributed by @​toger5.

🐛 Bug Fixes

v34.13.0

Compare Source

====================================================================================================

🦖 Deprecations

✨ Features

🐛 Bug Fixes

v34.12.0

Compare Source

====================================================================================================

🦖 Deprecations

✨ Features

v34.11.1

Compare Source

====================================================================================================

v34.10.0

Compare Source

====================================================================================================

🦖 Deprecations

  • Deprecate CreateSecretStorageOpts.keyBackupInfo used in CryptoApi.bootstrapSecretStorage. (#​4474). Contributed by @​florianduros.
  • Add CryptoApi.encryptToDeviceMessages() and deprecate Crypto.encryptAndSendToDevices() (#​4380). Contributed by @​hughns.
  • Remove abandoned MSC3886, MSC3903, MSC3906 experimental implementations (#​4469). Contributed by @​t3chguy.
  • Deprecate MatrixClient.getDehydratedDevice (#​4467). Contributed by @​florianduros.
  • Deprecate top level crypto events re-export (#​4444). Contributed by @​florianduros.

✨ Features

  • Add CryptoApi.encryptToDeviceMessages() and deprecate Crypto.encryptAndSendToDevices() (#​4380). Contributed by @​hughns.
  • Do not rotate MatrixRTC media encryption key when a new member joins a session (#​4472). Contributed by @​hughns.
  • Avoid <sender>|<session> notation in log messages (#​4473). Contributed by @​richvdh.
  • Refactor/simplify Promises in MatrixRTCSession (#​4466). Contributed by @​AndrewFerr.
  • Prepare delayed call leave events more reliably (#​4447). Contributed by @​AndrewFerr.

🐛 Bug Fixes

v34.9.0

Compare Source

==================================================================================================

🦖 Deprecations

🐛 Bug Fixes

v34.8.0

Compare Source

==================================================================================================
This release removes insecure functionality, resolving CVE-2024-47080 / GHSA-4jf8-g8wp-cx7c.

v34.7.0

Compare Source

==================================================================================================

🦖 Deprecations

  • RTCSession cleanup: deprecate getKeysForParticipant() and getEncryption(); add emitEncryptionKeys() (#​4427). Contributed by @​hughns.

✨ Features

  • Bump matrix-rust-sdk to 9.1.0 (#​4435). Contributed by @​richvdh.
  • Rotate Matrix RTC media encryption key when a new member joins a call for Post Compromise Security (#​4422). Contributed by @​hughns.
  • Update media event content types to include captions (#​4403). Contributed by @​tulir.
  • Update OIDC registration types to match latest MSC2966 state (#​4432). Contributed by @​t3chguy.
  • Add CryptoApi.pinCurrentUserIdentity and UserIdentity.needsUserApproval (#​4415). Contributed by @​richvdh.

v34.6.0

Compare Source

==================================================================================================

🦖 Deprecations

  • Element-R: Mark unsupported MatrixClient methods as deprecated (#​4389). Contributed by @​richvdh.

✨ Features

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • ""
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-actions
Copy link
Copy Markdown
Contributor

APK Size: 2.1 MB

@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from 9605416 to 5feea99 Compare August 10, 2025 12:54
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from 5feea99 to 51f5ff9 Compare November 11, 2025 00:49
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from 51f5ff9 to 1aef396 Compare November 18, 2025 22:41
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from 1aef396 to 97cbf14 Compare January 19, 2026 18:35
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from 97cbf14 to f3f35f8 Compare February 2, 2026 20:27
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from f3f35f8 to 453add2 Compare March 13, 2026 13:38
@renovate renovate Bot changed the title Update dependency matrix-js-sdk to v34 [SECURITY] Update dependency matrix-js-sdk to v34 [SECURITY] - autoclosed Mar 27, 2026
@renovate renovate Bot closed this Mar 27, 2026
@renovate renovate Bot deleted the renovate/npm-matrix-js-sdk-vulnerability branch March 27, 2026 01:23
@renovate renovate Bot changed the title Update dependency matrix-js-sdk to v34 [SECURITY] - autoclosed Update dependency matrix-js-sdk to v34 [SECURITY] Mar 30, 2026
@renovate renovate Bot reopened this Mar 30, 2026
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch 2 times, most recently from 453add2 to a443b33 Compare March 30, 2026 21:31
@renovate renovate Bot changed the title Update dependency matrix-js-sdk to v34 [SECURITY] Update dependency matrix-js-sdk to v34 [SECURITY] - autoclosed Apr 27, 2026
@renovate renovate Bot closed this Apr 27, 2026
@renovate renovate Bot changed the title Update dependency matrix-js-sdk to v34 [SECURITY] - autoclosed Update dependency matrix-js-sdk to v34 [SECURITY] Apr 27, 2026
@renovate renovate Bot reopened this Apr 27, 2026
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch 2 times, most recently from a443b33 to 89f6322 Compare April 27, 2026 21:39
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from 89f6322 to f5b27dc Compare May 13, 2026 22:55
@renovate renovate Bot force-pushed the renovate/npm-matrix-js-sdk-vulnerability branch from f5b27dc to 5563c42 Compare May 25, 2026 18:30
@renovate renovate Bot changed the title Update dependency matrix-js-sdk to v34 [SECURITY] Update dependency matrix-js-sdk to v38 [SECURITY] May 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants