Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 15, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
matrix-js-sdk ^25.0.0 -> ^34.0.0 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-42369

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.

CVE-2024-47080

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.


Release Notes

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

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

v34.5.0

Compare Source

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

🦖 Deprecations

  • Deprecate unused callback hooks CryptoCallbacks.onSecretRequested and CryptoCallbacks.getDehydrationKey (#​4376). Contributed by @​richvdh.

v34.4.0

Compare Source

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

✨ Features

🐛 Bug Fixes

  • Retry event decryption failures on first failure (#​4346). Contributed by @​hughns.
  • Ensure "type" = "module" ES declaration in pre-release.sh (#​4350). Contributed by @​BLCK-B.
  • Handle MatrixRTC encryption keys arriving out of order (#​4345). Contributed by @​hughns.
  • Resend MatrixRTC encryption keys if a membership has changed (#​4343). Contributed by @​hughns.

v34.3.1

Compare Source

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

v34.3.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v34.2.0

Compare Source

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

🐛 Bug Fixes

  • Element-R: detect "withheld key" UTD errors, and mark them as such (#​4302). Contributed by @​richvdh.

v34.1.0

Compare Source

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

✨ Features

  • Add ability to choose how many timeline events to sync when peeking (#​4300). Contributed by @​jgarplind.
  • Remove redundant hack for using the old pickle key in rust crypto (#​4282). Contributed by @​richvdh.
  • Add fetching the well known in embedded mode. (#​4259). Contributed by @​toger5.

🐛 Bug Fixes

v34.0.0

Compare Source

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

🚨 BREAKING CHANGES

✨ Features

🐛 Bug Fixes

v33.1.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v33.0.0

Compare Source

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

🚨 BREAKING CHANGES

🦖 Deprecations

✨ Features

🐛 Bug Fixes

v32.4.0

Compare Source

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

  • No changes

v32.3.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v32.2.0

Compare Source

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

✨ Features

  • Use a different error code for UTDs when user was not in the room (#​4172). Contributed by @​uhoreg.
  • Modernize window.crypto access constants (#​4169). Contributed by @​turt2live.
  • Improve compliance with MSC3266 (#​4155). Contributed by @​AndrewFerr.
  • Add comment to make clear that RoomStateEvent.Events does not update related objects in the js-sdk (#​4152). Contributed by @​toger5.
  • Crypto: use a new error code for UTDs from device-relative historical events (#​4139). Contributed by @​richvdh.

🐛 Bug Fixes

  • Element-R: Fix rust migration when ssss secret are stored not encryted in cache (old legacy behavior) (#​4168). Contributed by @​BillCarsonFr.

v32.1.0

Compare Source

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

✨ Features

🐛 Bug Fixes

  • Validate backup private key before migrating it (#​4114). Contributed by @​BillCarsonFr.
  • ElementR| Retry query backup until it works during migration to avoid spurious correption error popup (#​4113). Contributed by @​BillCarsonFr.

v32.0.0

Compare Source

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

🚨 BREAKING CHANGES

  • Remove various deprecated methods & re-exports (#​4125). Contributed by @​t3chguy.
  • Remove the logic that throws when the lazy loading options has changed. (#​4124). Contributed by @​langleyd.
  • Fix highlights from threads disappearing on new messages (#​4106). Contributed by @​dbkr.

✨ Features

🐛 Bug Fixes

  • Improve types for IPowerLevelsContent and hasSufficientPowerLevelFor (#​4128). Contributed by @​galash13.
  • Remove the logic that throws when the lazy loading options has changed. (#​4124). Contributed by @​langleyd.
  • Fix highlights from threads disappearing on new messages (#​4106). Contributed by @​dbkr.
  • Extend logic for local notification processing to threads (#​4111). Contributed by @​dbkr.
  • Fix public rooms post request search params and body (#​4110). Contributed by @​ajbura.
  • Fix bugs with the first reply to a thread (#​4104). Contributed by @​dbkr.

v31.6.1

Compare Source

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

🐛 Bug Fixes

  • Fix merging of default push rules (#​4136).

v31.6.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v31.5.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v31.4.0

Compare Source

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

✨ Features

  • Validate account_management_uri and account_management_actions_supported from OIDC Issuer well-known (#​4074). Contributed by @​t3chguy.
  • Allow specifying OIDC url state parameter for passing data to callback (#​4068). Contributed by @​t3chguy.
  • Add getAuthIssuer method for MSC2965 (#​4071). Contributed by @​t3chguy.
  • Allow specifying more OIDC client metadata for dynamic registration (#​4070). Contributed by @​t3chguy.
  • Add unread marker event type (#​4069). Contributed by @​dbkr.
  • Add "AsJson" forms of the key import/export methods (#​4057). Contributed by @​andybalaam.

🐛 Bug Fixes

v31.3.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v31.2.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v31.1.0

Compare Source

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

✨ Features

v31.0.0

Compare Source

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

🚨 BREAKING CHANGES

✨ Features

🐛 Bug Fixes

v30.3.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v30.2.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v30.1.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v30.0.1

Compare Source

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

🐛 Bug Fixes

v30.0.0

Compare Source

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

🚨 BREAKING CHANGES

  • Refactor & make base64 functions browser-safe (#​3818).
  • IndexedDBStore.startup() must be called after using it on sdk.createClient now.

🦖 Deprecations

  • Deprecate MatrixEvent.toJSON (#​3801).

✨ Features

🐛 Bug Fixes

v29.1.0

Compare Source

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

✨ Features

🐛 Bug Fixes

v29.0.0

Compare Source

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

🚨 BREAKING CHANGES

✨ Features

  • Export AutoDiscoveryError and fix type of ALL_ERRORS (#​3768).
  • Support for stable MSC3882 get_login_token (#​3416). Contributed by @​hughns.
  • Remove IsUserMention and IsRoomMention from DEFAULT_OVERRIDE_RULES (#​3752). Contributed by @​kerryarchibald.

🐛 Bug Fixes

  • Fix a case where joinRoom creates a duplicate Room object (#​3747).
  • Add membershipID to call memberships (#​3745).
  • Fix the warning for messages from unsigned devices (#​3743).
  • Stop keep alive, when sync was stoped (#​3720). Contributed by @​finsterwalder.

v28.2.0

Compare Source

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

🦖 Deprecations

  • Implement getEncryptionInfoForEvent and deprecate getEventEncryptionInfo (#​3693).
  • The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (#​3189)

✨ Features

🐛 Bug Fixes

v28.1.0

Compare Source

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

🦖 Deprecations

  • Deprecate MatrixClient.checkUserTrust (#​3691).
  • Deprecate MatrixClient.{prepare,create}KeyBackupVersion in favour of new CryptoApi.resetKeyBackup API (#​3689).
  • The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (#​3189)

✨ Features

🐛 Bug Fixes

v28.0.0

Compare Source

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

🚨 BREAKING CHANGES

🦖 Deprecations

  • **The Browserify artifact is being deprecated, scheduled for removal in the October 10th re

Configuration

📅 Schedule: Branch creation - "" (UTC), 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.

Copy link
Contributor

APK Size: 2.1 MB

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