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

chore(deps): update dependency element-hq/synapse to v1 #614

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

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 1, 2024

This PR contains the following updates:

Package Update Change
element-hq/synapse major v0.12.0 -> v1.120.0

Release Notes

element-hq/synapse (element-hq/synapse)

v1.120.0

Compare Source

Synapse 1.120.0 (2024-11-26)

This release enables the enforcement of authenticated media by default, with exemptions for media that is already present in the
homeserver's media store.

Most homeservers operating in the public federation will not be impacted by this change, given that
the large homeserver matrix.org enabled this in September 2024 and therefore most clients and servers
will already have updated as a result.

Some server administrators may still wish to disable this enforcement for the time being, in the interest of compatibility with older clients
and older federated homeservers.
See the upgrade notes for more information.

Bugfixes
  • Fix a bug introduced in Synapse v1.120rc1 which would cause the newly-introduced delete_old_otks job to fail in worker-mode deployments. (#​17960)

Synapse 1.120.0rc1 (2024-11-20)

Features
  • Enforce authenticated media by default. Administrators can revert this by configuring enable_authenticated_media to false. In a future release of Synapse, this option will be removed and become always-on. (#​17889)
  • Add a one-off task to delete old One-Time Keys, to guard against us having old OTKs in the database that the client has long forgotten about. (#​17934)
Improved Documentation
  • Clarify the semantics of the enable_authenticated_media configuration option. (#​17913)
  • Add documentation about backing up Synapse. (#​17931)
Deprecations and Removals
Internal Changes
  • Addressed some typos in docs and returned error message for unknown MXC ID. (#​17865)
  • Unpin the upload release GHA action. (#​17923)
  • Bump macOS version used to build wheels during release, as current version used is end-of-life. (#​17924)
  • Move server event filtering logic to Rust. (#​17928)
  • Support new package name of PyPI package python-multipart 0.0.13 so that distro packagers do not need to work around name conflict with PyPI package multipart. (#​17932)
  • Speed up slow initial sliding syncs on large servers. (#​17946)
Updates to locked dependencies
  • Bump anyhow from 1.0.92 to 1.0.93. (#​17920)
  • Bump bleach from 6.1.0 to 6.2.0. (#​17918)
  • Bump immutabledict from 4.2.0 to 4.2.1. (#​17941)
  • Bump packaging from 24.1 to 24.2. (#​17940)
  • Bump phonenumbers from 8.13.49 to 8.13.50. (#​17942)
  • Bump pygithub from 2.4.0 to 2.5.0. (#​17917)
  • Bump ruff from 0.7.2 to 0.7.3. (#​17919)
  • Bump serde from 1.0.214 to 1.0.215. (#​17938)

v1.119.0

Compare Source

Synapse 1.119.0 (2024-11-13)

No significant changes since 1.119.0rc2.

Python 3.8 support dropped

Python 3.8 is end-of-life and is no longer supported by Synapse. The minimum supported Python version is now 3.9.

If you are running Synapse with Python 3.8, please upgrade to Python 3.9 (or greater) before upgrading Synapse.

Synapse 1.119.0rc2 (2024-11-11)

Note that due to packaging issues there was no v1.119.0rc1.

Features
Bugfixes
  • Fix bug with sliding sync where $LAZY-loading room members would not return required_state membership in incremental syncs. (#​17809)
  • Check if user has membership in a room before tagging it. Contributed by Lama Alosaimi. (#​17839)
  • Fix a bug in the admin redact endpoint where the background task would not run if a worker was specified in
    the config option run_background_tasks_on. (#​17847)
  • Fix bug where some presence and typing timeouts can expire early. (#​17850)
  • Fix detection when the built Rust library was outdated when using source installations. (#​17861)
  • Fix a long-standing bug in Synapse which could cause one-time keys to be issued in the incorrect order, causing message decryption failures. (#​17903)
  • Fix experimental support for MSC4222 (Adding state_after to sync v2) where we would return the full state on incremental syncs when using lazy loaded members and there were no new events in the timeline. (#​17915)
Internal Changes
  • Remove support for python 3.8. (#​17908)
  • Add a test for downloading and thumbnailing a CMYK JPEG. (#​17786)
  • Refactor database calls to remove Generator usage. (#​17813, #​17814, #​17815, #​17816, #​17817, #​17818, #​17890)
  • Include the destination in the error of 'Destination mismatch' on federation requests. (#​17830)
  • The nix flake inside the repository no longer tracks nixpkgs/master to not catch the latest bugs from a PR merged 5 minutes ago. (#​17852)
  • Minor speed-up of sliding sync by computing extensions results in parallel. (#​17884)
  • Bump the default Python version in the Synapse Dockerfile from 3.11 -> 3.12. (#​17887)
  • Remove usage of internal header encoding API. (#​17894)
  • Use unique name for each os.arch variant when uploading Wheel artifacts. (#​17905)
  • Fix tests to run with latest Twisted. (#​17906, #​17907, #​17911)
  • Update version constraint to allow the latest poetry-core 1.9.1. (#​17902)
  • Update the portdb CI to use Python 3.13 and Postgres 17 as latest dependencies. (#​17909)
  • Add an index to current_state_delta_stream table. (#​17912)
  • Fix building and attaching release artifacts during the release process. (#​17921)
Updates to locked dependencies

v1.118.0

Compare Source

Synapse 1.118.0 (2024-10-29)

No significant changes since 1.118.0rc1.

Python 3.8 support will be dropped in the next release

Python 3.8 is now end-of-life. As per our Deprecation Policy for Platform Dependencies, Synapse will be dropping support for Python 3.8 in the next release; Synapse 1.119.0.

Synapse 1.118.x will be the final release to support Python 3.8. If you are running Synapse with Python 3.8, please upgrade before the 1.119.0 release, due in less than one month.

Python 3.13 and PostgreSQL 17 support

On the other end of the spectrum, Synapse 1.118.0 is the first release to support Python 3.13! PostgreSQL 17 is also supported as of this release.

Synapse 1.118.0rc1 (2024-10-22)

Features
  • Added the display_name_claim option to the JWT configuration. This option allows specifying the claim key that contains the user's display name in the JWT payload. (#​17708)
  • Implement MSC4210: Remove legacy mentions. Contributed by @​tulir @​ Beeper. (#​17783)
Bugfixes
  • Fix saving of PNG thumbnails, when the original image is in the CMYK color space. (#​17736)
  • Fix bug with sliding sync where the server would not return state that was added to the required_state config. (#​17785, #​17805)
  • Fix a bug in MSC4186 Sliding Sync that would cause rooms to stay forgotten and hidden even after rejoining. (#​17835)
Improved Documentation
  • Clarify when the user_may_invite and user_may_send_3pid_invite module callbacks are called. (#​17627)
  • Correct documentation to refer to the --config-path argument instead of --config-file. (#​17802)
  • Fix typo in target_cache_memory_usage docs. (#​17825)
Internal Changes
  • Slight optimization when fetching state/events for Sliding Sync. (#​17718)
  • Add Python 3.13 and Postgres 17 to the test matrix. (#​17752)
  • Test github token before running release script steps. (#​17803)
  • Build debian packages for new Ubuntu versions, and stop building for no longer supported versions. (#​17824)
  • Enable the .org.matrix.msc4028.encrypted_event push rule by default in accordance with MSC4028. Note that the corresponding experimental feature must still be switched on for this push rule to have any effect. (#​17826)
  • Fix some typing issues uncovered by upgrading mypy to 1.11.x. (#​17842)
Updates to locked dependencies
  • Bump mypy from 1.10.1 to 1.11.2. (#​17842)
  • Bump mypy-zope from 1.0.5 to 1.0.7. (#​17827)
  • Bump phonenumbers from 8.13.46 to 8.13.47. (#​17797)
  • Bump psycopg2 from 2.9.9 to 2.9.10. (#​17843)
  • Bump ruff from 0.6.8 to 0.6.9. (#​17794)
  • Bump sentry-sdk from 2.14.0 to 2.15.0. (#​17795)
  • Bump sentry-sdk from 2.15.0 to 2.16.0. (#​17829)
  • Bump sentry-sdk from 2.16.0 to 2.17.0. (#​17844)
  • Bump sigstore/cosign-installer from 3.6.0 to 3.7.0. (#​17798)
  • Bump tomli from 2.0.1 to 2.0.2. (#​17796)
  • Bump types-requests from 2.32.0.20240914 to 2.32.0.20241016. (#​17841)
  • Bump types-setuptools from 75.1.0.20240917 to 75.1.0.20241014. (#​17828)

v1.117.0

Compare Source

Synapse 1.117.0 (2024-10-15)

No significant changes since 1.117.0rc1.

Synapse 1.117.0rc1 (2024-10-08)

Features
  • Add config option redis.password_path. (#​17717)
Bugfixes
  • Fix a rare bug introduced in v1.29.0 where invalidating a user's access token from a worker could raise an error. (#​17779)
  • In the response to GET /_matrix/client/versions, set the unstable_features flag for MSC4140 to false when server configuration disables support for delayed events. (#​17780)
  • Improve input validation and room membership checks in admin redaction API. (#​17792)
Improved Documentation
  • Clarify the docstring of test_forget_when_not_left. (#​17628)
  • Add documentation note about PYTHONMALLOC for accurate jemalloc memory tracking. Contributed by @​hensg. (#​17709)
  • Remove spurious "TODO UPDATE ALL THIS" note in the Debian installation docs. (#​17749)
  • Explain how load balancing works for federation_sender_instances. (#​17776)
Internal Changes
  • Minor performance increase for large accounts using sliding sync. (#​17751)
  • Increase performance of the notifier when there are many syncing users. (#​17765, #​17766)
  • Fix performance of streams that don't change often. (#​17767)
  • Improve performance of sliding sync connections that do not ask for any rooms. (#​17768)
  • Reduce overhead of sliding sync E2EE loops. (#​17771)
  • Sliding sync minor performance speed up using new table. (#​17787)
  • Sliding sync minor performance improvement by omitting unchanged data from incremental responses. (#​17788)
  • Speed up sliding sync when there are many active subscriptions. (#​17789)
  • Add missing license headers on new source files. (#​17799)
Updates to locked dependencies
  • Bump phonenumbers from 8.13.45 to 8.13.46. (#​17773)
  • Bump python-multipart from 0.0.10 to 0.0.12. (#​17772)
  • Bump regex from 1.10.6 to 1.11.0. (#​17770)
  • Bump ruff from 0.6.7 to 0.6.8. (#​17774)

v1.116.0

Compare Source

Synapse 1.116.0 (2024-10-01)

No significant changes since 1.116.0rc2.

Synapse 1.116.0rc2 (2024-09-26)

Features
  • Add implementation of restricting who can overwrite a state event as proposed by MSC3757. (#​17513)

Synapse 1.116.0rc1 (2024-09-25)

Features
Bugfixes
  • Make sure we get up-to-date state information when using the new MSC4186 Sliding Sync tables to derive room membership. (#​17692)
  • Fix bug where room account data would not correctly be sent down MSC4186 Sliding Sync for old rooms. (#​17695)
  • Fix a bug in MSC4186 Sliding Sync which could prevent /sync from working for certain user accounts. (#​17727, #​17733)
  • Ignore invites from ignored users in Sliding Sync. (#​17729)
  • Fix bug in MSC4186 Sliding Sync where the server would incorrectly return a negative bump stamp, which caused Element X apps to stop syncing. (#​17748)
Internal Changes
  • Import pydantic objects from the _pydantic_compat module.
    This allows check_pydantic_models.py to mock those pydantic objects
    only in the synapse module, and not interfere with pydantic objects in
    external dependencies. (#​17667)
  • Use MSC4186 Sliding Sync tables as a bulk shortcut for getting the max event_stream_ordering of rooms. (#​17693)
  • Speed up MSC4186 sliding sync requests a bit where there are many room changes. (#​17696)
  • Refactor MSC4186 sliding sync filter unit tests so the sliding sync API has better test coverage. (#​17703)
  • Fetch bump_stamps more efficiently in MSC4186 Sliding Sync. (#​17723)
  • Shortcut for checking if certain background updates have completed (utilized in MSC4186 Sliding Sync). (#​17724)
  • More efficiently fetch rooms for MSC4186 Sliding Sync. (#​17725)
  • Fix _bulk_get_max_event_pos being inefficient. (#​17728)
  • Add cache to get_tags_for_room(...). (#​17730)
  • Small performance improvement in speeding up MSC4186 Sliding Sync. (#​17731)
  • Minor speed up of initial MSC4186 sliding sync requests. (#​17734)
  • Remove usage of the deprecated cgi module, deprecated in Python 3.11 and removed in Python 3.13. (#​17741)
  • Fix typing of a variable that is not Unknown anymore after updating treq. (#​17744)
Updates to locked dependencies
  • Bump anyhow from 1.0.86 to 1.0.89. (#​17685, #​17716)
  • Bump bytes from 1.7.1 to 1.7.2. (#​17743)
  • Bump cryptography from 43.0.0 to 43.0.1. (#​17689)
  • Bump idna from 3.8 to 3.10. (#​17758)
  • Bump msgpack from 1.0.8 to 1.1.0. (#​17759)
  • Bump phonenumbers from 8.13.44 to 8.13.45. (#​17762)
  • Bump prometheus-client from 0.20.0 to 0.21.0. (#​17746)
  • Bump pyasn1 from 0.6.0 to 0.6.1. (#​17714)
  • Bump pyasn1-modules from 0.4.0 to 0.4.1. (#​17747)
  • Bump pydantic from 2.8.2 to 2.9.2. (#​17756)
  • Bump python-multipart from 0.0.9 to 0.0.10. (#​17745)
  • Bump ruff from 0.6.4 to 0.6.7. (#​17715, #​17760)
  • Bump sentry-sdk from 2.13.0 to 2.14.0. (#​17712)
  • Bump serde from 1.0.209 to 1.0.210. (#​17686)
  • Bump serde_json from 1.0.127 to 1.0.128. (#​17687)
  • Bump treq from 23.11.0 to 24.9.1. (#​17744)
  • Bump types-pyyaml from 6.0.12.20240808 to 6.0.12.20240917. (#​17755)
  • Bump types-requests from 2.32.0.20240712 to 2.32.0.20240914. (#​17713)
  • Bump types-setuptools from 74.1.0.20240907 to 75.1.0.20240917. (#​17757)

v1.115.0

Compare Source

Synapse 1.115.0 (2024-09-17)

No significant changes since 1.115.0rc2.

Synapse 1.115.0rc2 (2024-09-12)

Internal Changes
  • Pre-populate room data used in experimental MSC3575 Sliding Sync /sync endpoint for quick filtering/sorting. (#​17652)
  • Speed up sliding sync by reducing amount of data pulled out of the database for large rooms. (#​17683)

Synapse 1.115.0rc1 (2024-09-10)

Features
  • Improve cross-signing upload when using MSC3861 to use a custom UIA flow stage, with web fallback support. (#​17509)
Bugfixes
  • Return 400 M_BAD_JSON upon attempting to complete various room actions with a non-local user ID and unknown room ID, rather than an internal server error. (#​17607)
  • Fix authenticated media responses using a wrong limit when following redirects over federation. (#​17626)
  • Fix bug where we returned the wrong bump_stamp for invites in sliding sync response, causing incorrect ordering of invites in the room list. (#​17674)
Improved Documentation
  • Clarify that the admin api resource is only loaded on the main process and not workers. (#​17590)
  • Fixed typo in saml2_config config example. (#​17594)
Deprecations and Removals
  • Stabilise MSC4156 by removing the msc4156_enabled config setting and defaulting it to true. (#​17650)
Internal Changes
Updates to locked dependencies
  • Bump authlib from 1.3.1 to 1.3.2. (#​17679)
  • Bump idna from 3.7 to 3.8. (#​17682)
  • Bump ruff from 0.6.2 to 0.6.4. (#​17680)
  • Bump towncrier from 24.7.1 to 24.8.0. (#​17645)
  • Bump twisted from 24.7.0rc1 to 24.7.0. (#​17647)
  • Bump types-pillow from 10.2.0.20240520 to 10.2.0.20240822. (#​17644)
  • Bump types-psycopg2 from 2.9.21.20240417 to 2.9.21.20240819. (#​17646)
  • Bump types-setuptools from 71.1.0.20240818 to 74.1.0.20240907. (#​17681)

v1.114.0

Compare Source

Synapse 1.114.0 (2024-09-02)

This release enables support for MSC4186 — Simplified Sliding Sync. This allows using the upcoming releases of the Element X mobile apps without having to run a Sliding Sync Proxy.

Features

Synapse 1.114.0rc3 (2024-08-30)

Bugfixes
  • Fix regression in v1.114.0rc2 that caused workers to fail to start. (#​17626)

Synapse 1.114.0rc2 (2024-08-30)

Features
  • Improve cross-signing upload when using MSC3861 to use a custom UIA flow stage, with web fallback support. (#​17509)
  • Make hash_password script accept password input from stdin. (#​17608)
Bugfixes
  • Fix hierarchy returning 403 when room is accessible through federation. Contributed by Krishan (@​kfiven). (#​17194)
  • Fix content-length on federation /thumbnail responses. (#​17532)
  • Fix authenticated media responses using a wrong limit when following redirects over federation. (#​17543)
Internal Changes
  • MSC3861: load the issuer and account management URLs from OIDC discovery. (#​17407)
  • Refactor sliding sync class into multiple files. (#​17595)
  • Store sliding sync per-connection state in the database. (#​17599)
  • Make the sliding sync PerConnectionState class immutable. (#​17600)
  • Add support to @tag_args for standalone functions. (#​17604)
  • Speed up incremental syncs in sliding sync by adding some more caching. (#​17606)
  • Always return the user's own read receipts in sliding sync. (#​17617)
  • Replace isort and black with ruff. (#​17620)
  • Refactor sliding sync code to move room list logic out into a separate class. (#​17622)
Updates to locked dependencies
  • Bump attrs from 23.2.0 to 24.2.0. (#​17609)
  • Bump cryptography from 42.0.8 to 43.0.0. (#​17584)
  • Bump phonenumbers from 8.13.43 to 8.13.44. (#​17610)
  • Bump pygithub from 2.3.0 to 2.4.0. (#​17612)
  • Bump pyyaml from 6.0.1 to 6.0.2. (#​17611)
  • Bump sentry-sdk from 2.12.0 to 2.13.0. (#​17585)
  • Bump serde from 1.0.206 to 1.0.208. (#​17581)
  • Bump serde from 1.0.208 to 1.0.209. (#​17613)
  • Bump serde_json from 1.0.124 to 1.0.125. (#​17582)
  • Bump serde_json from 1.0.125 to 1.0.127. (#​17614)
  • Bump types-jsonschema from 4.23.0.20240712 to 4.23.0.20240813. (#​17583)
  • Bump types-setuptools from 71.1.0.20240726 to 71.1.0.20240818. (#​17586)

Synapse 1.114.0rc1 (2024-08-20)

Features
  • Add a flag to /versions, org.matrix.simplified_msc3575, to indicate whether experimental sliding sync support has been enabled. (#​17571)
  • Handle changes in timeline_limit in experimental sliding sync. (#​17579)
  • Correctly track read receipts that should be sent down in experimental sliding sync. (#​17575, #​17589, #​17592)
Bugfixes
  • Start handlers for new media endpoints when media resource configured. (#​17483)
  • Fix timeline ordering (using stream_ordering instead of topological ordering) in experimental MSC3575 Sliding Sync /sync endpoint. (#​17510)
  • Fix experimental sliding sync implementation to remember any updates in rooms that were not sent down immediately. (#​17535)
  • Better exclude partially stated rooms if we must await full state in experimental MSC3575 Sliding Sync /sync endpoint. (#​17538)
  • Handle lower-case http headers in _Mulitpart_Parser_Protocol. (#​17545)
  • Fix fetching federation signing keys from servers that omit old_verify_keys. Contributed by @​tulir @​ Beeper. (#​17568)
  • Fix bug where we would respond with an error when a remote server asked for media that had a length of 0, using the new multipart federation media endpoint. (#​17570)
Improved Documentation
Internal Changes
  • Add more tracing to experimental MSC3575 Sliding Sync /sync endpoint. (#​17514)
  • Fixup comment in sliding sync implementation. (#​17531)
  • Replace override of deprecated method HTTPAdapter.get_connection with get_connection_with_tls_context. (#​17536)
  • Fix performance of device lists in /key/changes and sliding sync. (#​17537, #​17548)
  • Bump setuptools from 67.6.0 to 72.1.0. (#​17542)
  • Add a utility function for generating random event IDs. (#​17557)
  • Speed up responding to media requests. (#​17558, #​17561, #​17564, #​17566, #​17567, #​17569)
  • Test github token before running release script steps. (#​17562)
  • Reduce log spam of multipart files. (#​17563)
  • Refactor per-connection state in experimental sliding sync handler. (#​17574)
  • Add histogram metrics for sliding sync processing time. (#​17593)
Updates to locked dependencies
  • Bump bytes from 1.6.1 to 1.7.1. (#​17526)
  • Bump lxml from 5.2.2 to 5.3.0. (#​17550)
  • Bump phonenumbers from 8.13.42 to 8.13.43. (#​17551)
  • Bump regex from 1.10.5 to 1.10.6. (#​17527)
  • Bump sentry-sdk from 2.10.0 to 2.12.0. (#​17553)
  • Bump serde from 1.0.204 to 1.0.206. (#​17556)
  • Bump serde_json from 1.0.122 to 1.0.124. (#​17555)
  • Bump sigstore/cosign-installer from 3.5.0 to 3.6.0. (#​17549)
  • Bump types-pyyaml from 6.0.12.20240311 to 6.0.12.20240808. (#​17552)
  • Bump types-requests from 2.31.0.20240406 to 2.32.0.20240712. (#​17524)

v1.113.0

Compare Source

Synapse 1.113.0 (2024-08-13)

No significant changes since 1.113.0rc1.

Synapse 1.113.0rc1 (2024-08-06)

Features
  • Track which rooms have been sent to clients in the experimental MSC3575 Sliding Sync /sync endpoint. (#​17447)
  • Add Account Data extension support to experimental MSC3575 Sliding Sync /sync endpoint. (#​17477)
  • Add receipts extension support to experimental MSC3575 Sliding Sync /sync endpoint. (#​17489)
  • Add typing notification extension support to experimental MSC3575 Sliding Sync /sync endpoint. (#​17505)
Bugfixes
  • Update experimental MSC3575 Sliding Sync /sync endpoint to handle invite/knock rooms when filtering. (#​17450)
  • Fix a bug introduced in v1.110.0 which caused /keys/query to return incomplete results, leading to high network activity and CPU usage on Matrix clients. (#​17499)
Improved Documentation
Internal Changes
  • Change sliding sync to use their own token format in preparation for storing per-connection state. (#​17452)
  • Ensure we don't send down negative bump_stamp in experimental sliding sync endpoint. (#​17478)
  • Do not send down empty room entries down experimental sliding sync endpoint. (#​17479)
  • Refactor Sliding Sync tests to better utilize the SlidingSyncBase. (#​17481, #​17482)
  • Add some opentracing tags and logging to the experimental sliding sync implementation. (#​17501)
  • Split and move Sliding Sync tests so we have some more sane test file sizes. (#​17504)
  • Update the limited field description in the Sliding Sync response to accurately describe what it actually represents. (#​17507)
  • Easier to understand timeline assertions in Sliding Sync tests. (#​17511)
  • Reset the sliding sync connection if we don't recognize the per-connection state position. (#​17529)
Updates to locked dependencies
  • Bump bcrypt from 4.1.3 to 4.2.0. (#​17495)
  • Bump black from 24.4.2 to 24.8.0. (#​17522)
  • Bump phonenumbers from 8.13.39 to 8.13.42. (#​17521)
  • Bump ruff from 0.5.4 to 0.5.5. (#​17494)
  • Bump serde_json from 1.0.120 to 1.0.121. (#​17493)
  • Bump serde_json from 1.0.121 to 1.0.122. (#​17525)
  • Bump towncrier from 23.11.0 to 24.7.1. (#​17523)
  • Bump types-pyopenssl from 24.1.0.20240425 to 24.1.0.20240722. (#​17496)
  • Bump types-setuptools from 70.1.0.20240627 to 71.1.0.20240726. (#​17497)

v1.112.0

Compare Source

Synapse 1.112.0 (2024-07-30)

This security release is to update our locked dependency on Twisted to 24.7.0rc1, which includes a security fix for CVE-2024-41671 / GHSA-c8m8-j448-xjx7: Disordered HTTP pipeline response in twisted.web, again.

Note that this security fix is also available as Synapse 1.111.1, which does not include the rest of the changes in Synapse 1.112.0.

This issue means that, if multiple HTTP requests are pipelined in the same TCP connection, Synapse can send responses to the wrong HTTP request.
If a reverse proxy was configured to use HTTP pipelining, this could result in responses being sent to the wrong user, severely harming confidentiality.

With that said, despite being a high severity issue, we consider it unlikely that Synapse installations will be affected.
The use of HTTP pipelining in this fashion would cause worse performance for clients (request-response latencies would be increased as users' responses would be artificially blocked behind other users' slow requests). Further, Nginx and Haproxy, two common reverse proxies, do not appear to support configuring their upstreams to use HTTP pipelining and thus would not be affected. For both of these reasons, we consider it unlikely that a Synapse deployment would be set up in such a configuration.

Despite that, we cannot rule out that some installations may exist with this unusual setup and so we are releasing this security update today.

pip users: Note that by default, upgrading Synapse using pip will not automatically upgrade Twisted. Please manually install the new version of Twisted using pip install Twisted==24.7.0rc1. Note also that even the --upgrade-strategy=eager flag to pip install -U matrix-synapse will not upgrade Twisted to a patched version because it is only a release candidate at this time.

Internal Changes
  • Upgrade locked dependency on Twisted to 24.7.0rc1. (#​17502)

Synapse 1.112.0rc1 (2024-07-23)

Please note that this release candidate does not include the security dependency update
included in version 1.111.1 as this version was released before 1.111.1.
The same security fix can be found in the full release of 1.112.0.

Features
  • Add to-device extension support to experimental MSC3575 Sliding Sync /sync endpoint. (#​17416)
  • Populate name/avatar fields in experimental MSC3575 Sliding Sync /sync endpoint. (#​17418)
  • Populate heroes and room summary fields (joined_count, invited_count) in experimental MSC3575 Sliding Sync /sync endpoint. (#​17419)
  • Populate is_dm room field in experimental MSC3575 Sliding Sync /sync endpoint. (#​17429)
  • Add room subscriptions to experimental MSC3575 Sliding Sync /sync endpoint. (#​17432)
  • Prepare for authenticated media freeze. (#​17433)
  • Add E2EE extension support to experimental MSC3575 Sliding Sync /sync endpoint. (#​17454)
Bugfixes
  • Add configurable option to always include offline users in presence sync results. Contributed by @​Michael-Hollister. (#​17231)
  • Fix bug in experimental MSC3575 Sliding Sync /sync endpoint when using room type filters and the user has one or more remote invites. (#​17434)
  • Order heroes by stream_ordering as the Matrix specification states (applies to /sync). (#​17435)
  • Fix rare bug where /sync would break for a user when using workers with multiple stream writers. (#​17438)
Improved Documentation
Internal Changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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.

@renovate renovate bot requested a review from a team as a code owner December 1, 2024 17:57
Copy link
Contributor

github-actions bot commented Dec 1, 2024

Test coverage for a6bc365

Name                                    Stmts   Miss Branch BrPart  Cover   Missing
-----------------------------------------------------------------------------------
src/actions/__init__.py                     1      0      0      0   100%
src/actions/register_user.py               21      0      2      0   100%
src/admin_access_token.py                   9      0      0      0   100%
src/backup.py                             175      5     20      2    96%   353-354, 423-424, 481->483, 484
src/backup_observer.py                    134     16     12      0    89%   132-135, 140-143, 179-182, 211-214
src/charm.py                              288     18     70     10    92%   135->137, 140, 246, 250-251, 279-280, 308, 315, 396-400, 403-404, 432-434, 454, 490-491
src/charm_state.py                        158      9     34      7    92%   271, 275, 296, 321, 327, 333, 337-338, 425
src/charm_types.py                         34      0      0      0   100%
src/database_client.py                     57      1      8      4    92%   35, 47->exit, 69->exit, 88->98
src/database_observer.py                   39      0      4      1    98%   70->72
src/exceptions.py                           3      0      0      0   100%
src/matrix_auth_observer.py                60      5     12      3    89%   61, 64, 148, 167-168
src/media_observer.py                      41      4      2      1    88%   61-63, 82
src/mjolnir.py                             97      3     30      3    95%   82, 91->107, 112-116
src/observability.py                       14      0      0      0   100%
src/pebble.py                             206     27     48     13    84%   57->62, 176->exit, 187-191, 225-226, 246-247, 300->305, 310-311, 323-324, 326-327, 345-346, 363, 365, 367, 369, 371, 399, 451-456
src/redis_observer.py                      35      3      4      0    92%   62-65
src/s3_parameters.py                       22      0      4      0   100%
src/saml_observer.py                       38      0      4      0   100%
src/smtp_observer.py                       56      4     14      2    91%   82-86, 89, 108->113
src/synapse/__init__.py                     4      0      0      0   100%
src/synapse/admin.py                       19      2      2      0    90%   40-41
src/synapse/api.py                        175      3     20      3    97%   176, 229, 402
src/synapse/workload.py                   139      6     24      0    94%   405-406, 416-419
src/synapse/workload_configuration.py     170     29     38     13    80%   95->exit, 99-100, 148-149, 178, 198-199, 231-232, 265, 274-275, 290, 295-296, 317-318, 337->342, 343, 361->363, 373-374, 390, 458-459, 487, 495->497, 497->499, 504-505, 525->532, 535, 555-556
src/user.py                                23      0      2      0   100%
-----------------------------------------------------------------------------------
TOTAL                                    2018    135    354     62    92%

Static code analysis report

Working... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Run started:2024-12-01 17:58:54.564811

Test results:
  No issues identified.

Code scanned:
  Total lines of code: 11319
  Total lines skipped (#nosec): 4
  Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 0

Run metrics:
  Total issues (by severity):
  	Undefined: 0
  	Low: 0
  	Medium: 0
  	High: 0
  Total issues (by confidence):
  	Undefined: 0
  	Low: 0
  	Medium: 0
  	High: 0
Files skipped (0):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants