Synapse 1.67 released
14.09.2022 13:03 — Releases — Brendan AbolivierIt's that time again - Synapse release time! Synapse 1.67 is fresh out of the oven, let's have a look at what's inside.
It's that time again - Synapse release time! Synapse 1.67 is fresh out of the oven, let's have a look at what's inside.
We've released a new version of matrix.org's node-irc 1.3.0 and matrix-appservice-irc 0.35.0, to patch several security issues:
The details of the final vulnerability will be released at a later date, pending an audit of the codebase to ensure it's not affected by other similar vulnerabilities.
The vulnerabilities have been patched in node-irc version 1.3.0 and matrix-appservice-irc 0.35.0. You can get the release on Github.
The bridges running on the Libera Chat, OFTC and other networks bridged by the Matrix.org Foundation have been patched.
Please upgrade your IRC bridge as soon as possible.
The above vulnerabilities were reported by Val Lorentz. Thank you!
Hey all, we've just released Synapse 1.66! Let's have a look at what's inside this release.
Today we are issuing security releases of matrix-js-sdk and matrix-react-sdk to patch a couple of High severity vulnerabilities (reserved as CVE-2022-36059 for the matrix-js-sdk and CVE-2022-36060 for the matrix-react-sdk).
Affected clients include those which depend on the affected libraries, such as Element Web/Desktop and Cinny. Releases of the affected clients will follow shortly. We advise users of those clients to upgrade at their earliest convenience.
The vulnerabilities give an adversary who you share a room with the ability to carry out a denial-of-service attack against the affected clients, making it not show all of a user's rooms or spaces and/or causing minor temporary corruption.
The full vulnerability details will be disclosed at a later date, to give people time to upgrade and us to perform a more thorough audit of the codebase.
Note that while the vulnerability was to our knowledge never exploited maliciously, some unintentional public testing has left some people affected by the bug. We made a best effort to sanitize this to stop the breakage. If you are affected, you may still need to clear the cache and reload your Matrix client for it to take effect.
We thank Val Lorentz who discovered and reported the vulnerability over the weekend.
Hey everyone! We've just released Synapse 1.65! Let's have a peek at what's inside.
A feature that the more privacy-focused users of Matrix have been missing was the ability to hide read receipts from other users. Read receipts in rooms can tell a user which messages another user has read in a room. However, they can also be an unwelcome indicator that a user is currently reading a certain room, thus giving away the user's activity on Matrix at a given time.
Hiding one's read receipts from other Matrix users is unfortunately not as straightforward as simply preventing a client from sharing read receipts with the server. This is because read receipts are also used by Matrix homeservers to calculate how much of a room a user has read, and generate notification counts for rooms accordingly.
Synapse 1.65 introduces stable support for private read receipts. This feature, described by MSC2285, allows clients to send a different type of read receipt to the server. This then tells the homeserver to use this piece of information to update the user's notification counts, but not to share it with other users.
This version of Synapse includes two new module API methods to help Synapse
modules interact and manage rooms. The first one,
lookup_room_alias
,
allows modules to retrieve the room ID corresponding to a given room alias. This
works both for local and remote aliases. The second one,
create_room
,
allows modules to create new rooms on behalf of an existing user.
The
update_room_membership
method has also been updated in this release of Synapse to allow modules to join
a room the server is not already in via federation. This can be done by using
the new remote_room_hosts
argument, which takes a list of homeservers to try
to join via.
Synapse 1.65 stabilises the implementation of MSC3827, which allows filtering public room searches on room types. This means it is now possible to search specifically for public spaces. For more information on this feature, see the Synapse 1.63 announcement.
Additionally, Synapse 1.65 implements the new experimental error codes documented by MSC3848. Once stabilised, these error codes will allow clients to show more specific errors to their users about why an event could not be sent.
See the full changelog for a complete list of changes in this release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) Beeper, andrewdoh, Julian-Samuel Gebühr and Dirk Klimpel, as well as anyone helping us make Synapse better by sharing their feedback and reporting issues.
It's that time again: there's a new Synapse release, fresh out of the oven! Let's take a look at what's inside Synapse 1.64.
Synapse 1.4.0
introduced a configuration option (account_threepid_delegates.email
) to allow
homeservers to delegate validating the ownership of email addresses to an
external identity server. This validation is used by Synapse when adding an
email address to a Matrix account, or before performing a password reset.
As of Synapse 1.64, this option is deprecated, and Synapse will print a warning if it is used. This is because this option relies on old API endpoints that have since been removed from the Matrix specification.
Synapse can do this validation internally provided it is configured with details
of an SMTP server. Administrators currently relying on
account_threepid_delegates.email
should therefore ensure that an SMTP server
is correctly configured, and remove the account_threepid_delegates.email
option. See the configuration
guide
for more information.
We plan to fully remove this configuration option in Synapse 1.66, which is expected to be released on August 30th.
Note that the equivalent option to validate the ownership of phone numbers
(account_threepid_delegates.msisdn
) can still be used, though we expect to
deprecate it in a future release of Synapse.
When configuring an SMTP server to use to send out emails to users, server administrators can configure Synapse to use TLS to communicate to that server. Until now, only STARTTLS was supported in this case.
Synapse 1.64 introduces a new force_tls
configuration option in the email
section of the configuration file. If this new setting is set to true
Synapse
will use TLS for the initial connection rather than upgrading via STARTTLS.
See the configuration guide for more information.
frozendict
A couple of weeks ago, we
identified a
memory leak within frozendict, which is
a library that Synapse relies on. This would in turn cause Synapse instances to
slowly leak memory when processing /sync
requests.
We highly encourage server administrators who installed Synapse via pip
to
upgrade their local version of frozendict
to version 2.3.3 or later, which
includes a fix to this issue. The Docker image matrixdotorg/synapse
and the
Debian packages from packages.matrix.org
already include the updated library.
This version of Synapse introduces support for room version 10! This new room
version enables support for the new knock_restricted
join rule, to allow
knocking into rooms which are otherwise restricted to members of a specific room
(or space). See the Matrix specification about room version
10 for more information.
Additionally, Synapse 1.64 features a new rate limiter to limit the rate of joins to the same room. It is intended as a mitigation against abuse scenarios involving joining a lot of users from different homeservers to a room to then send spam across it. See the configuration guide for more information.
This release of Synapse also extends the List Rooms and Room Details admin APIs to include the type of a room in responses, allowing server administrators to differentiate spaces from other rooms.
See the full changelog for a complete list of changes in this release. Also please have a look at the upgrade notes for this version.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) Beeper, andrewdoh, Thomas Weston, jejo86, villepeh, Jörg Behrmann and Jacek Kuśnierz, as well as anyone helping us make Synapse better by sharing their feedback and reporting issues.
Hey all, it's time for another Synapse release! That's right, Synapse 1.63 is out, let's have a look at it.
Synapse has the ability to report usage statistics to the Matrix.org Foundation (or to another location, if configured to do so). These statistics, such as number of users, number of rooms joined by the server, etc. (they don't feature any identifiable information about users and rooms) help us monitor the health of the public federation.
In this release of Synapse, we have updated our public documentation about this feature to clarify how it works and what exactly is being reported. This documentation can be found right here.
Note that previous documentation and prompts surrounding this feature called it "anonymised" server statistics. This could easily be misinterpreted, as while per-user statistics are not reported, homeserver server names are. We have therefore changed said documentation and prompts to be clearer about what is actually reported.
Note that your homeserver will never report any statistics if the report_stats
configuration option is set to false
. Server admins who are curious about
which software is used by the Matrix.org Foundation to record server statistics
can check out panopticon.
This version of Synapse ships with an experimental implementation of MSC3827 which allows filtering public room search results by room type. This feature will enable better discoverability for Matrix Spaces (which are rooms with a specific type, under the hood), as it will enable clients to search specifically for public spaces.
This feature is still experimental as its MSC hasn't completed the MSC process yet, though it is in its final comment period at the time this post is being written. This means a stable implementation will be coming to Synapse very soon, so watch this space!
Synapse 1.63 also includes a new rate limiter to limit invites per issuer. This
rate limiter can be configured using the new rc_invites.per_issuer
configuration setting, see the
documentation
for more information.
See the full changelog for a complete list of changes in this release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) Beeper, villepeh and Petr Vaněk, as well as anyone helping us make Synapse better by sharing their feedback and reporting issues.
Hey all, Synapse 1.62 is out! Let's have a look inside.
In the past few weeks, the Synapse team has been working with the Matrix.org Trust & Safety team to help module developers build more efficient protections against spam. As a consequence of this work, Synapse 1.62 introduces new ways for modules to communicate the result of actions taken against a specific message or operation through the spam checker module callbacks.
Previously, most spam checker callbacks would be expected to return a boolean
indicating whether a specific operation should be qualified as spam. Starting
from Synapse 1.62, modules are now expected to return either
synapse.module_api.NOT_SPAM
(to indicate an action is not spammy), or an error
code that is part of synapse.module_api.errors.Codes
.
Note that the previous behaviour is still supported but is now deprecated, and will be removed in a future version of Synapse.
See the upgrade
notes
for a list of the affected callbacks and an example of this change. Note that on
top of the list described there, the check_event_for_spam
callback was also
updated with a similar
change
in Synapse 1.61.
This release of Synapse includes important performance improvements around syncing, specifically around handling device lists and notifications.
Synapse 1.62 also introduce a changes of its optional dependency on the LDAP3 authentication provider module to v0.2.1 in order to fix an issue with usernames that include uppercase characters.
See the full changelog for a complete list of changes in this release. Also please have a look at the upgrade notes for this version.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) Beeper, Sami Olmari, Daniel Aloni, Thumbscrew and Hannes Lerchl.
Hey everyone!
Today we're exceptionally releasing Synapse 1.61.1, which comes as a security release. Server administrators are encouraged to update as soon as possible.
This release fixes a vulnerability with Synapse's URL preview feature. URL previews of some web pages can lead to unbounded recursion, causing the request to either fail, or in some cases crash the running Synapse process.
Homeservers with the url_preview_enabled
configuration option set to false
(the default value) are unaffected. Instances with the enable_media_repo
configuration option set to false
are also unaffected, as this also disables
the URL preview functionality.
Server administrators who are unable to update Synapse should disable URL
previews by setting url_preview_enabled: false
in their configuration file.
They can also delegate URL preview to a separate, dedicated worker to ensure the
process crashing does not impact other functionality of Synapse.
Please see this security advisory for more information.
Hey everyone! Guess what? Synapse 1.61 is out! Let's have a look at it.
If you are new to Matrix, you might have not heard of the feature referred to as
"groups" or "communities" (depending on the context). This feature allowed
grouping rooms and users to better represent a community, one of which being
+matrix:matrix.org
which used to represent the Matrix community. This may
sound similar to Matrix
Spaces, and it would
make sense since Spaces are meant to be a more powerful replacement for groups.
In Synapse 1.56, support for groups was deprecated, with a plan to fully remove it in a later release of Synapse. This has now been done as of Synapse 1.61, and most of the code supporting this feature has now been removed.
Note that this means that administrators of homeservers using workers can remove endpoints related to groups from their reverse proxy configuration. See the upgrade notes for more information.
A common issue we see homeserver administrators struggle with is managing the disk space used by Synapse. A non-negligible part of that disk space usage is dedicated to storing files uploaded by Matrix users, both local and remote.
Up until now Synapse would only provide administrators with limited, manual ways to manage the media store of their homeserver, via the admin API.
As of this release, Synapse now allows administrators to define retention lifetimes for local and remote media. This allows media that hasn't been accessed in a long time to be automatically deleted, therefore freeing up disk space. Server administrators wishing to control media retention more finely can also define different policies for remote and local media.
This feature can be enabled by configuring the media_retention
setting, see
the configuration
guide
for more information.
This release of Synapse introduces a change in the return value of the
check_event_for_spam
spam checker module callback, in order to allow modules
more flexibility in communicating to users why their messages are rejected. This
is part of ongoing improvement works around spam checker callbacks, watch this
space next time for more information!
See the full changelog for a complete list of changes in this release. Also please have a look at the upgrade notes for this version.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) Beeper, Dirk Klimpel and Jacek Kuśnierz.