Releases: mastodon/mastodon
v4.2.0-beta2
⚠️ This is a beta release! This is primarily aimed at server administrators who are willing to report issues, and may be less reliable than stable releases, although it is still tested on mastodon.social and some other servers. If you update to this release, you will not be able to safely downgrade to the existing stable releases. You will, however, be able to upgrade to later nightly releases as well as the upcoming 4.2.0 stable release.
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v4.1.4).
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires streaming API restart
ℹ️ Requires database migrations
For more information, scroll down to the upgrade instructions section.
Changelog (v.4.2.0-beta2)
Added
- Add “Privacy and reach” tab in profile settings (Gargron, ClearlyClaire)
This reorganized scattered privacy and reach settings to a single place, as well as improve their wording. - Add display of out-of-band hashtags in the web interface (Gargron, arbolitoloco1, ClearlyClaire, ClearlyClaire)
- Add auto-refresh of accounts we get new messages/edits of (ClearlyClaire)
- Add Elasticsearch cluster health check and indexes mismatch check to dashboard (ClearlyClaire)
- Add support for
indexable
attribute on remote actors (Gargron) - Add
DELETE /api/v1/profile/avatar
andDELETE /api/v1/profile/header
to the REST API (danielmbrasil, ClearlyClaire) - Add
S3_DISABLE_CHECKSUM_MODE
environment variable for compatibility with some S3-compatible providers (ClearlyClaire) - Add
ES_PRESET
option to customize numbers of shards and replicas (Gargron, ClearlyClaire)
This can have a value ofsingle_node_cluster
(default),small_cluster
(uses one replica) orlarge_cluster
(uses one replica and a higher number of shards). - Add missing
instances
option totootctl search deploy
(tribela) - Add
CACHE_BUSTER_HTTP_METHOD
environment variable (renchap, ClearlyClaire) - Add support for
DB_PASS
when usingDATABASE_URL
(ThisIsMissEm)
Changed
- Change hashtags to be displayed separately when they are the last line of a post (renchap)
- Change the hashtag column to not display the hashtag header on pinned columns (ClearlyClaire)
- Change follow recommendation materialized view to be faster in most cases (renchap, ClearlyClaire)
- Change
robots.txt
to block GPTBot (Foritus)
Removed
- Remove old non-unique index on
preview_cards
statuses join table (ClearlyClaire)
Fixed
- Fix blocking subdomains of an already-blocked domain (ClearlyClaire)
- Fix reply not preserving the language from the replied-to post (ClearlyClaire)
- Fix "Create Account" button in interaction modal (mgmn)
- Fix unfollow icon styling in advanced column (ClearlyClaire)
- Fix “legal” report category not showing up in moderation interface (ClearlyClaire)
- Fix cached posts including stale stats (ClearlyClaire)
- Fix uploading of video files for which
ffprobe
reports0/0
average framerate (NicolaiSoeborg) - Fix avatar and header image preview in profile settings (c960657)
Changelog (v4.2.0-beta1)
The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by @danielmbrasil, @mjankowski, @nschonni, @renchap, and @takayamaki.
Added
- Add role badges to the web interface (ClearlyClaire, Gargron)
- Add ability to pick domains to forward reports to using the
forward_to_domains
parameter inPOST /api/v1/reports
(ClearlyClaire)
Theforward_to_domains
REST API parameter is a list of strings. If it is empty or omitted, the previous behavior is maintained.
Theforward
parameter still needs to be set forforward_to_domains
to be taken into account.
The forwarded-to domains can only include that of the original author and people being replied to. - Add forwarding of reported replies to servers being replied to (Gargron, ClearlyClaire)
- Add direct link to the Single-Sign On provider if there is only one sign up method available (CSDUMMI, ClearlyClaire)
- Add webhook templating (Gargron)
- Add webhooks for local
status.created
,status.updated
,account.updated
andreport.updated
(VyrCossont, VyrCossont, VyrCossont) - Add exclusive lists (dariusk, necropolina, ClearlyClaire)
- Add a confirmation screen when suspending a domain (ClearlyClaire, ClearlyClaire)
- Add support for importing lists (ClearlyClaire, mgmn, ClearlyClaire)
- Add optional hCaptcha support (ClearlyClaire, ClearlyClaire, Gargron, ClearlyClaire)
- Add lines to threads in web UI (Gargron, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, teeerevor, renchap)
- Add new onboarding flow to web UI (Gargron, Gargron, Gargron, ClearlyClaire, [ThisIsMissEm](https://github.com/mastodon/mastodon/p...
v4.2.0-beta1
⚠️ This is a beta release! This is primarily aimed at server administrators who are willing to report issues, and may be less reliable than stable releases, although it is still tested on mastodon.social and some other servers. If you update to this release, you will not be able to safely downgrade to the existing stable releases. You will, however, be able to upgrade to later nightly releases as well as the upcoming 4.2.0 stable release.
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v4.1.4).
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires streaming API restart
ℹ️ Requires database migrations
For more information, scroll down to the upgrade instructions section.
Changelog
The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by @danielmbrasil, @mjankowski, @nschonni, @renchap, and @takayamaki.
Added
- Add role badges to the web interface (ClearlyClaire, Gargron)
- Add ability to pick domains to forward reports to using the
forward_to_domains
parameter inPOST /api/v1/reports
(ClearlyClaire)
Theforward_to_domains
REST API parameter is a list of strings. If it is empty or omitted, the previous behavior is maintained.
Theforward
parameter still needs to be set forforward_to_domains
to be taken into account.
The forwarded-to domains can only include that of the original author and people being replied to. - Add forwarding of reported replies to servers being replied to (Gargron, ClearlyClaire)
- Add direct link to the Single-Sign On provider if there is only one sign up method available (CSDUMMI, ClearlyClaire)
- Add webhook templating (Gargron)
- Add webhooks for local
status.created
,status.updated
,account.updated
andreport.updated
(VyrCossont, VyrCossont, VyrCossont) - Add exclusive lists (dariusk, necropolina, ClearlyClaire)
- Add a confirmation screen when suspending a domain (ClearlyClaire, ClearlyClaire)
- Add support for importing lists (ClearlyClaire, mgmn, ClearlyClaire)
- Add optional hCaptcha support (ClearlyClaire, ClearlyClaire, Gargron, ClearlyClaire)
- Add lines to threads in web UI (Gargron, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, teeerevor, renchap)
- Add new onboarding flow to web UI (Gargron, Gargron, Gargron, ClearlyClaire, ThisIsMissEm, Gargron, stevenjlm, ClearlyClaire, ClearlyClaire, Gargron, ClearlyClaire)
- Add
GET /api/v1/instance/languages
to REST API (danielmbrasil) - Add primary key to
preview_cards_statuses
join table (ClearlyClaire, ClearlyClaire) - Add client-side timeout on resend confirmation button (Gargron)
- Add published date and author to news on the explore screen in web UI (Gargron)
- Add
lang
attribute to various UI components (c960657, c960657, c960657, c960657) - Add stricter protocol fields validation for accounts (ClearlyClaire)
- Add support for Azure blob storage (mistydemeo, mistydemeo)
- Add toast with option to open post after publishing in web UI (Gargron, Signez)
- Add canonical link tags in web UI (Gargron)
- Add button to see results for polls in web UI (Gargron)
- Add at-symbol prepended to mention span title (forsamori)
- Add users index on
unconfirmed_email
(ClearlyClaire, ClearlyClaire) - Add superapp index on
oauth_applications
(ClearlyClaire) - Add index to backups on
user_id
column (mjankowski) - Add onboarding prompt when home feed too slow in web UI (Gargron, ClearlyClaire, Gargron, renchap, ClearlyClaire, ClearlyClaire, ClearlyClaire)
- Add
POST /api/v1/conversations/:id/unread
API endpoint to mark a conversation as unread (ClearlyClaire) - Add
translate="no"
to outgoing mentions and links (ClearlyClaire) - Add unsubscribe link and headers to e-mails (Gargron, c960657)
- Add logging of websocket send errors (ThisIsMissEm)
- Add time zone preference (Gargron, ClearlyClaire)
- Add
legal
as report category (Gargron, renchap) - Add
data-nosnippet
so Google doesn't use trending posts in snippets for/
(ClearlyClaire) - Add card with who invited you to join when displaying rules on sign-up (ClearlyClaire)
- Add m...
v4.1.6
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v4.1.4).
Upgrade overview
ℹ️ Requires streaming API restart
For more information, scroll down to the upgrade instructions section.
Changelog
Fixed
- Fix memory leak in streaming server (ThisIsMissEm)
- Fix wrong filters sometimes applying in streaming (ClearlyClaire, ThisIsMissEm, renchap)
- Fix incorrect connect timeout in outgoing requests (ClearlyClaire)
Upgrade notes
To get the code for v4.1.6, use git fetch && git checkout v4.1.6
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look:
docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
External dependencies have not changed compared to v4.1.5, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 14, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more information and ways to fix it on this page.
Update steps
The following instructions are for updating from 4.1.5.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- Restart all Mastodon processes
v4.0.8
This is a backport for the 4.0.x branch.
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v4.0.6).
Upgrade overview
ℹ️ Requires streaming API restart
For more information, scroll down to the upgrade instructions section.
Changelog
Fixed
- Fix memory leak in streaming server (ThisIsMissEm)
- Fix wrong filters sometimes applying in streaming (ClearlyClaire, ThisIsMissEm, renchap)
- Fix incorrect connect timeout in outgoing requests (ClearlyClaire)
Upgrade notes
To get the code for v4.0.8, use git fetch && git checkout v4.0.8
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look:
docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
External dependencies have not changed compared to v4.0.7, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 14, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more information and ways to fix it on this page.
Update steps
The following instructions are for updating from 4.0.7.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- Restart all Mastodon processes
v3.5.12
This is a backport for the 3.5.x branch.
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v3.5.10).
Upgrade overview
ℹ️ Requires streaming API restart
For more information, scroll down to the upgrade instructions section.
Changelog
Fixed
- Fix memory leak in streaming server (ThisIsMissEm)
- Fix incorrect connect timeout in outgoing requests (ClearlyClaire)
Upgrade notes
To get the code for v3.5.12, use git fetch && git checkout v3.5.12
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look:
docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
External dependencies have not changed compared to v3.5.11, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 12.22, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more information and ways to fix it on this page.
Update steps
The following instructions are for updating from 3.5.11.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- Restart all Mastodon processes
v4.1.5
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v4.1.4).
Changelog
Added
- Add check preventing Sidekiq workers from running with Makara configured (ClearlyClaire)
Changed
- Change request timeout handling to use a longer deadline (ClearlyClaire)
Fixed
- Fix moderation interface for remote instances with a .zip TLD (ClearlyClaire)
- Fix remote accounts being possibly persisted to database with incomplete protocol values (ClearlyClaire)
- Fix trending publishers table not rendering correctly on narrow screens (vmstan)
Security
- Fix CSP headers being unintentionally wide (ClearlyClaire)
Upgrade notes
To get the code for v4.1.5, use git fetch && git checkout v4.1.5
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look:
docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
External dependencies have not changed compared to v4.1.4, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 14, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more information and ways to fix it on this page.
Update steps
The following instructions are for updating from 4.1.4.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- Restart all Mastodon processes
v4.0.7
This is a backport for the 4.0.x branch.
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v4.0.6).
Changelog
Added
- Add check preventing Sidekiq workers from running with Makara configured (ClearlyClaire)
Changed
- Change request timeout handling to use a longer deadline (ClearlyClaire)
Fixed
- Fix moderation interface for remote instances with a .zip TLD (ClearlyClaire)
- Fix remote accounts being possibly persisted to database with incomplete protocol values (ClearlyClaire)
- Fix trending publishers table not rendering correctly on narrow screens (vmstan)
Security
- Fix CSP headers being unintentionally wide (ClearlyClaire)
Upgrade notes
To get the code for v4.0.7, use git fetch && git checkout v4.0.7
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look:
docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
External dependencies have not changed compared to v4.0.6, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 14, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more information and ways to fix it on this page.
Update steps
The following instructions are for updating from 4.0.6.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- Restart all Mastodon processes
v3.5.11
This is a backport for the 3.5.x branch.
⚠️ We recently released critical security updates, so if you are still using 4.1.2 or below, 4.0.4 or below, or 3.5.8 or below, please update as soon as possible (see the release notes for v3.5.10).
Changelog
Added
- Add check preventing Sidekiq workers from running with Makara configured (ClearlyClaire)
Changed
- Change request timeout handling to use a longer deadline (ClearlyClaire)
Fixed
- Fix moderation interface for remote instances with a .zip TLD (ClearlyClaire)
- Fix remote accounts being possibly persisted to database with incomplete protocol values (ClearlyClaire)
- Fix trending publishers table not rendering correctly on narrow screens (vmstan)
Security
- Fix CSP headers being unintentionally wide (ClearlyClaire)
Upgrade notes
To get the code for v3.5.11, use git fetch && git checkout v3.5.11
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look:
docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
External dependencies have not changed compared to v3.5.10, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 12.22, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more information and ways to fix it on this page.
Update steps
The following instructions are for updating from 3.5.10.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- Restart all Mastodon processes
v4.1.4
This release addresses a few issues that were missed in the last security update and includes changelogs for both updates.
⚠️ It is a follow-up to the important 4.1.3 security release fixing multiple critical security issues (CVE-2023-36460, CVE-2023-36459).Corresponding security releases are available for the 4.0.x branch and the 3.5.x branch.
If you are using nightly builds, do not use this release but update tonightly-2023-07-07-v4.1.4
or newer instead. If you are on themain
branch, update to the latest commit.
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires streaming API restart
ℹ️ There are suggested reverse proxy configuration changes
For more information, scroll down to the upgrade instructions section.
Changelog (v4.1.4)
Fixed
- Fix branding:generate_app_icons failing because of disallowed ICO coder (ClearlyClaire)
- Fix crash in admin interface when viewing a remote user with verified links (ClearlyClaire)
- Fix processing of media files with unusual names (ClearlyClaire)
Changelog (v4.1.3)
Added
- Add fallback redirection when getting a webfinger query
LOCAL_DOMAIN@LOCAL_DOMAIN
(ClearlyClaire)
Changed
- Change OpenGraph-based embeds to allow fullscreen (ClearlyClaire)
- Change AccessTokensVacuum to also delete expired tokens (ClearlyClaire)
- Change profile updates to be sent to recently-mentioned servers (ClearlyClaire)
- Change automatic post deletion thresholds and load detection (ClearlyClaire)
- Change
/api/v1/statuses/:id/history
to always return at least one item (ClearlyClaire) - Change auto-linking to allow carets in URL query params (renchap)
Removed
- Remove invalid
X-Frame-Options: ALLOWALL
(ClearlyClaire)
Fixed
- Fix wrong view being displayed when a webhook fails validation (ClearlyClaire)
- Fix soft-deleted post cleanup scheduler overwhelming the streaming server (ThisIsMissEm)
- Fix incorrect pagination headers in
/api/v2/admin/accounts
(danielmbrasil) - Fix multiple inefficiencies in automatic post cleanup worker (ClearlyClaire, ClearlyClaire, ClearlyClaire)
- Fix performance of streaming by parsing message JSON once (ThisIsMissEm, ThisIsMissEm)
- Fix CSP headers when
S3_ALIAS_HOST
includes a path component (ClearlyClaire) - Fix
tootctl accounts approve --number N
not aproving N earliest registrations (danielmbrasil) - Fix reports not being closed when performing batch suspensions (ClearlyClaire)
- Fix being able to vote on your own polls (ClearlyClaire)
- Fix race condition when reblogging a status (ClearlyClaire)
- Fix “Authorized applications” inefficiently and incorrectly getting last use date (ClearlyClaire)
- Fix “Authorized applications” crashing when listing apps with certain admin API scopes (ClearlyClaire)
- Fix multiple N+1s in ConversationsController (ClearlyClaire, ClearlyClaire, ClearlyClaire)
- Fix user archive takeouts when using OpenStack Swift (ClearlyClaire)
- Fix searching for remote content by URL not working under certain conditions (ClearlyClaire)
- Fix inefficiencies in indexing content for search (VyrCossont, VyrCossont)
Security
- Add finer permission requirements for managing webhooks (ClearlyClaire)
- Update dependencies
- Add hardening headers for user-uploaded files (ClearlyClaire)
- Fix verified links possibly hiding important parts of the URL (CVE-2023-36462)
- Fix timeout handling of outbound HTTP requests (CVE-2023-36461)
- Fix arbitrary file creation through media processing (CVE-2023-36460)
- Fix possible XSS in preview cards (CVE-2023-36459)
Upgrade notes
To get the code for v4.1.4, use git fetch && git checkout v4.1.4
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
Apart from ImageMagick, external dependencies have not changed compared to v4.1.2, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 14, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more informations and ways to fix it on this page.
Update steps
The following instructions are for updating from 4.1.2.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
ℹ️ The recommended configuration for reverse proxies has been updated. Unlike updating Mastodon itself, this is not urgent, but hardening. The change is about setting Content-Security-Policy: default-src 'none'; form-action 'none'
and X-Content-Type-Options: nosniff
on assets. Check dist/nginx.conf
for more information, and the documentation if you are proxying external object storage.
- Restart all Mastodon processes
v4.0.6
This release addresses a few issues that were missed in the last security update and includes changelogs for both updates.
⚠️ It is a follow-up to the important 4.0.5 security release that fixed multiple critical security issues (CVE-2023-36460, CVE-2023-36459).Corresponding security releases are available for the 4.1.x branch and the 3.5.x branch.
If you are using nightly builds, do not use this release but update to
nightly-2023-07-07-v4.1.4
or newer instead. If you are on themain
branch, update to the latest commit.
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires streaming API restart
ℹ️ There are suggested reverse proxy configuration changes
For more information, scroll down to the upgrade instructions section.
Changelog (v4.0.6)
Fixed
- Fix branding:generate_app_icons failing because of disallowed ICO coder (ClearlyClaire)
- Fix crash in admin interface when viewing a remote user with verified links (ClearlyClaire)
- Fix processing of media files with unusual names (ClearlyClaire)
Changelog (v4.0.5)
Changed
- Change OpenGraph-based embeds to allow fullscreen (ClearlyClaire)
- Change profile updates to be sent to recently-mentioned servers (ClearlyClaire)
- Change
/api/v1/statuses/:id/history
to always return at least one item (ClearlyClaire) - Change auto-linking to allow carets in URL query params (renchap)
Removed
- Remove invalid
X-Frame-Options: ALLOWALL
(ClearlyClaire)
Fixed
- Fix wrong view being displayed when a webhook fails validation (ClearlyClaire)
- Fix soft-deleted post cleanup scheduler overwhelming the streaming server (ThisIsMissEm)
- Fix incorrect pagination headers in
/api/v2/admin/accounts
(danielmbrasil) - Fix performance of streaming by parsing message JSON once (ThisIsMissEm, ThisIsMissEm)
- Fix CSP headers when
S3_ALIAS_HOST
includes a path component (ClearlyClaire) - Fix
tootctl accounts approve --number N
not aproving N earliest registrations (danielmbrasil) - Fix being able to vote on your own polls (ClearlyClaire)
- Fix race condition when reblogging a status (ClearlyClaire)
- Fix “Authorized applications” inefficiently and incorrectly getting last use date (ClearlyClaire)
- Fix multiple N+1s in ConversationsController (ClearlyClaire, ClearlyClaire, ClearlyClaire)
- Fix user archive takeouts when using OpenStack Swift (ClearlyClaire)
- Fix searching for remote content by URL not working under certain conditions (ClearlyClaire)
- Fix inefficiencies in indexing content for search (VyrCossont, VyrCossont)
Security
- Add finer permission requirements for managing webhooks (ClearlyClaire)
- Update dependencies
- Add hardening headers for user-uploaded files (ClearlyClaire)
- Fix verified links possibly hiding important parts of the URL (CVE-2023-36462)
- Fix timeout handling of outbound HTTP requests (CVE-2023-36461)
- Fix arbitrary file creation through media processing (CVE-2023-36460)
- Fix possible XSS in preview cards (CVE-2023-36459)
Upgrade notes
To get the code for v4.0.6, use git fetch && git checkout v4.0.6
.
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Dependencies
Apart from ImageMagick, external dependencies have not changed compared to v4.0.4, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.7 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: >= 14, < 18
- ImageMagick: 6.9.7-7 or newer
If your uploaded images are broken after the upgrade, it means your installed ImageMagick version is older than the new minimum version (6.9.7-7), for example if you are running Ubuntu 18.04. If this happens, you can find more informations and ways to fix it on this page.
Update steps
The following instructions are for updating from 4.0.4.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
ℹ️ The recommended configuration for reverse proxies has been updated. Unlike updating Mastodon itself, this is not urgent, but hardening. The change is about setting Content-Security-Policy: default-src 'none'; form-action 'none'
and X-Content-Type-Options: nosniff
on assets. Check dist/nginx.conf
for more information, and the documentation if you are proxying external object storage.
- Restart all Mastodon processes