Skip to content

v3.1.9

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Oct 15:29
· 43 commits to main since this release
v3.1.9
d65142e

Highlights

Security release on top of 3.1.8. Upgrade if you use matrix-communication for encrypted rooms, or on a machine that other users can log in to.

Security

  • Local storage: the data directory (matrix-skill/, store/, rooms/) is owner-only (0700), also when an older version created it. credentials.json, backup_key.json and the verification emoji file are created with mode 0600 and never through a symlink, and the emoji file moves from /tmp to the data directory.
  • Room keys go to verified devices only. Encrypted sends, edits and reactions sent through the daemon refuse a room with unverified devices and list them. A device nio stores as "ignored", as the daemon of 3.1.8 and older did, counts as unverified. --trust-unverified-devices shares one message's key with them and stores nothing. Sending no longer marks devices verified.
  • Verification is answered only for the account's own devices; --accept-from USER_ID adds another user.
  • Secrets are not taken from the command line. The password, recovery key and passphrase come from MATRIX_PASSWORD, MATRIX_RECOVERY_KEY / MATRIX_RECOVERY_PASSPHRASE or a prompt; --allow-secret-argument accepts a value on argv.
  • Both request helpers drop Authorization on a redirect to another origin. Ids in request paths are URL-encoded. Message text is escaped before it becomes HTML, and only http, https, mailto and matrix URLs are linked. synapse-graph.py escapes room-supplied label values.
  • Downloads keep an existing file unless --overwrite is given. matrix-watchd.py --stop signals the pid the daemon reports. Device setup and --logout take the store lock, and the key backup requires the full 8-byte MAC.

Fixed in #169 by @CybotTM, released here as a backport onto 3.1.8.

Behaviour changes

  • An encrypted send into a room with unverified devices now fails until they are verified or --trust-unverified-devices is given.
  • matrix-e2ee-setup.py PASSWORD and matrix-key-backup.py --recovery-key VALUE exit with an error; use the environment variables or the prompt.
  • A store used with 3.1.8 or older keeps the devices those versions marked verified. The e2ee guide describes how to start from a clean store.

3.1.9 contains no other change. The changes merged on main since 3.1.8 that are not part of this fix (among them reading tokens from the environment or a token file, #165) ship with the next release from main.

What's Changed

Full Changelog: v3.1.8...v3.1.9