there's no good reason to allow smtpd to execute custom command set by root
authorgilles <gilles@openbsd.org>
Fri, 2 Feb 2024 22:02:12 +0000 (22:02 +0000)
committergilles <gilles@openbsd.org>
Fri, 2 Feb 2024 22:02:12 +0000 (22:02 +0000)
commit03e780bb85dd986ebd9fbd8799d27f3e6534f196
tree78ca9aa1c988e429a03b15eb1f4642409731e27e
parent35b7f403129665b7ae5c3f844572d0cb6a797892
there's no good reason to allow smtpd to execute custom command set by root
in a .forward file so disallow custom commands and file reading, only allow
setting forward addresses and users.

as root is no longer allowed to run any MDA but mbox, we can be stricter on
the setup of the MDA process and refuse to exec anything that's not an mbox
dispatcher.

tested by op@ who edited a root envelope to simulate an exploit injecting a
custom command in a root envelope, smtpd refused to exec.

ok millert@ and op@
usr.sbin/smtpd/lka_session.c
usr.sbin/smtpd/smtpd.c
usr.sbin/smtpd/smtpd.h