Skip to content

v0.0.16

Latest

Choose a tag to compare

@mjl- mjl- released this 18 Aug 21:21
d5adc5c

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!

Downloading & compiling

See https://www.xmox.nl/install/#hdr-download.