Skip to content

v4.0.14

Compare
Choose a tag to compare
@ClearlyClaire ClearlyClaire released this 14 Feb 14:27
· 3 commits to stable-4.0 since this release

Mastodon

⚠️ The 4.0.x branch will not receive any update—including security fixes—after this one.

⚠️ This release is an important security release fixing several security issues.

Corresponding security releases are available for the 4.2.x branch, 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.2024-02-15-security or newer instead. If you are on the main branch, update to the latest commit.

End of life notice

The 4.0.x branch will not receive any further update after this one.

This means that no further security fix will be made available for this branch, and you will need to update to a more recent version (such as the 4.2.x branch) to receive security fixes.

Changelog

Security

  • Update the sidekiq-unique-jobs dependency (see GHSA-cmh9-rx85-xj38)
    In addition, we have disabled the web interface for sidekiq-unique-jobs out of caution, as it is very rarely useful.
    If you need to investigate sidekiq-unique-jobs locks, you can re-enable it by setting ENABLE_SIDEKIQ_UNIQUE_JOBS_UI=true.
    If you only need to clear all locks, you can now use the newly-added bundle exec rake sidekiq_unique_jobs:delete_all_locks.
  • Update the nokogiri dependency (see GHSA-xc9x-jj77-9p9j)
  • Disable administrative Doorkeeper routes (ThisIsMissEm)
  • Fix ongoing streaming sessions not being invalidated when applications get deleted in some cases (GHSA-7w3c-p9j8-mq3x)
    In some rare cases, the streaming server was not notified of access tokens revocation on application deletion.
  • Change external authentication behavior to never reattach a new identity to an existing user by default (GHSA-vm39-j3vx-pch3)
    Up until now, Mastodon has allowed new identities from external authentication providers to attach to an existing local user based on their verified e-mail address.
    This allowed upgrading users from a database-stored password to an external authentication provider, or move from one authentication provider to another.
    However, this behavior may be unexpected, and means that when multiple authentication providers are configured, the overall security would be that of the least secure authentication provider.
    For these reasons, this behavior is now locked under the ALLOW_UNSAFE_AUTH_PROVIDER_REATTACH environment variable.
    In addition, regardless of this environment variable, Mastodon will refuse to attach two identities from the same authentication provider to the same account.

Upgrade notes

To get the code for v4.0.14, use git fetch && git checkout v4.0.14.

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

Warning

The minimum required Ruby version has been bumped to 3.0.

With the exception of Ruby, external dependencies have not changed compared to v4.0.14, the compatible PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:

  • Ruby: 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.13.

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:

  1. Install dependencies: bundle install and yarn install --frozen-lockfile

Both Docker and non-Docker:

  1. Restart all Mastodon processes