Security fixes
- smtpserver: reject submitted messages with multiple From headers/addresses.
authenticated users could submit messages with multiple From headers, the
first would be checked for permission against the account's configured
addresses, but an additional From header could be present with an entirely
different From header, and the last From header would be DKIM-signed by mox.
(PR #459, 5dd6ce7) - scram: fix parsing of trailing extensions in scram messages by properly
forwarding the state after parsing an extension. (#463, 86edfe7) - sendmail: refuse to execute anything except "sendmail" when invoked with egid
!= gid. If installed setgid moxsubmit (e.g. at /usr/sbin/sendmail as
documentation suggests), invoking the command as regular mox command could
previously reveal secrets in /etc/moxsubmit.conf, or overwrite the file.
(e1ce2a5)
New features
- Introbox, a mailbox where first-time correspondents (based on message-from
address) are delivered to instead of to the Inbox. With an introbox, spam
messages (including mail bombs) that make it through are still separated from
regular email from known correspondents. Not enabled by default, configure in
account settings. (PR #454, 9928c0a)
Improvements
- Add "Fail" email transport, that immediately fails delivery. Allows configs
that prevent outgoing deliveries (globally, per domain, or per account)
from/to certain domains. (#347, bb43848) - Add config option to disable rate limiting for the webserver, and take a
reverse proxy into account when finding the ip to use for webserver
ratelimting. (#346, f1259ee) - webmail: Add a "Flagged" button to the webmail refine bar. (#428,
82d94fc) - use ClientSettingsDomain for RFC6186 DNS SRV (automatic account
configuration) records if set, for easier future migrations (#366, PR #367,
39d161c) - webmail: automatically reload webmail within a few seconds after a server
update, and restore the "compose message" state so a user doesn't notice.
(200bcec) - add cli subcommand "mox config account addresses $account" for listing
addresses of an account, and "mox config address account $address" for
printing the account of an address. (02e1a20) - Add config option to disable TLS client auth during TLS handshakes. To work
around clients, like the gmail smtp client, that tries to authenticate with a
webpki-issued certificate (which mox doesn't recognize for authentication).
(#359, 833a67f) - webserver: for http logging, log ip from x-forwarded-for as "clientip" and
allow configuring autoconfig & mtasts endpoints as being forwarded. (#369, PR
#381, 864a8e2)
Bug fixes
- imapserver: fix checks that ensured imap commands were only allowed to be
executed in certain connection states. (PR #457, 1d1a358) - imapserver: imapserver: fix bug in uid handing around the select/examine
command, leading to "uid already present" error. (f38da6e) - imapserver: properly handle extra bytes after a STARTTLS command by using
bytes already read, instead of trying to read the number of buffered bytes
again from the connection, likely breaking the handshake. (e775a32) - smtpserver: don't try to read out of bounds of a dkim signature's short "b="
parameter, leading to connection abort (75ac24d) - When registering login attempts, use X-Forwarded-For header for finding the
IP address. (#338, baacdbc) - Make logging referrer of http requests work. (2e0eea8)
- Fix error "updating spam/ham count: key too large" when marking some messages
as ham/spam. (#386, 24750ff) - Don't cause internal server errors for static file requests for invalid
paths, eg containing %00. (86582e3) - Add mechanism to work around imap client protocol incompatibilities with a
per-account setting to disable imap extensions (capabilities) for sessions of
that account. (#388, 3d28c89) - webmail: when forwarding a message, use decoded headers in "forwarded
message" preamble, instead of encoded values. (#382, 50229d3) - webmail, webaccount: use autocomplete=email not type=email for input
elements, to make internationalized addresses work (#332, e4ff6c9) - webserver: don't force adding a trailing slash when forwarding.
(023a40e) - webhook payload did not contain actual error message for delivery errors.
(#435, 18ecfcd) - fix setting domains to do ACME verification for when ACME provider is shared
between multiple listeners. (PR #452, dbff807) - webmail: don't intercept cmd+key browser shortcuts. (PR #455, 87a14f7)
- smtpserver: fix parsing of AUTH= parameter without further data in MAIL FROM
account. (#462, 33c4bd8) - various small bug fixes
Update procedure
Before upgrading, do a dry-run first.
- Make a temporary backup with the old mox version:
./mox-v0.0.15 backup data/tmp/testupgrade - Verify that all is well with the old version:
./mox-v0.0.15 verifydata data/tmp/testupgrade/data - Verify the state with the new version:
./mox-v0.0.16 verifydata data/tmp/testupgrade/data
With a successful dry-run, the upgrade should go smoothly. Make a new backup
again with ./mox-v0.0.15 backup data/tmp/backup (the previous backup was
modified by the dry-run, so couldn't be used to restore!), replace the binary
and restart. For further details, see
https://www.xmox.nl/faq/#hdr-how-do-i-upgrade-my-mox-installation
If you run into any problems, please create a bug report.
Thanks
Thanks to everyone on irc/matrix/slack and the issue tracker for providing
feedback, asking & answering questions and/or providing code. Much appreciated!
An incomplete list:
ajaspers, allddd, asciimoo, benjojo, Emrion, FLuX, hilli, iwanofski, lupine,
mattfbacon, Michiel, monowii, oasilturk, omartijn, philenotfound, vojbarzz,
vooon, wheresalice, wneessen, xzeldon
If you have open bug reports/issues mentioned in this release, please verify
the issue is resolved and either close the issue or write a comment. Thanks!
Special thanks to NLnet foundation for sponsoring development.
It's been a long time since the previous release. If you have time to help out,
you could help answer questions on the communication channels including the
issues list, or if you would like to write code look at the issues or todo's in
the code. Thanks!