v0.16.8

stalwartlabs/stalwartv0.16.8Jun 6, 2026by github-actions[bot]

AI Summary

Security and stability updates including OAuth token rework, MTA fixes for sub-addressing, and Sieve/Cache improvements.

Key Highlights

  • OAuth token rework to AES-256-GCM-SIV AEAD format
  • MTA fixes for sub-addressing and disabled aliases
  • Rate limiter panic fix for periods under 1 second
  • Sieve keep behavior fix

New Features

  • OAuth: Rework access tokens to AES-256-GCM-SIV AEAD format
  • Added more internal TLDs to domain validation

Full Release Notes

## [0.16.8] - 2026-06-06

If you are upgrading from v0.16.x, replace the binary (or run `docker pull`). If you are upgrading from v0.15.x and below, please read the [upgrading documentation](https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING/v0_16.md) for more information on how to upgrade from previous versions.

## Added

## Changed
- OAuth: Rework access tokens to an `AES-256-GCM-SIV` AEAD format that carries the account name for proxy routing.
- Added more internal TLDs to the domain validation.

## Fixed
- MTA: 
  - Sub-addressing with external directories returns `550 Mailbox not found`.
  - Disabled aliases continue receiving messages.
- JMAP for File Storage: `FileNode/get` returns a stale state string.
- Make `SieveSystemInterpreter.defaultReturnPath` and `MtaQueueQuota.match` optional expressions.
- Rate limiter panics when periods under 1 second are used.
- CalDAV/CardDAV: Calendar events, contacts, calendars and address books deleted via JMAP do not write a vanished tombstone.
- DNS updater: bump to `dns-update-v0.5.1`.


<hr />

### Check binary attestation [here](https://github.com/stalwartlabs/stalwart/attestations/30137514)