diff --git a/NEWS b/NEWS
index 535964e57..3beeb77a8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,59 @@
+What's new in Sudo 1.9.16
+
+ * Added the "cmddenial_message" sudoers option to provide additional
+ information to the user when a command is denied by the sudoers
+ policy. The default message is still displayed.
+
+ * The time stamp used for file-based logs is now more consistent
+ with the time stamp produced by syslog. GitHub issues #327.
+
+ * Sudo will now warn the user if it can detect the user's terminal
+ but cannot determine the path to the terminal device. The sudoers
+ time stamp file will now use the terminal device number directly.
+ GitHub issue #329.
+
+ * The embedded copy of zlib has been updated to version 1.3.1.
+
+ * Improved error handling if generating the list of signals and signal
+ names fails at build time.
+
+ * Fixed a compilation issue on Linux systems without process_vm_readv().
+
+ * Fixed cross-compilation with WolfSSL.
+
+ * Added a "json_compact" value for the sudoers "log_format" option
+ which can be used when logging to a file. The existing "json"
+ value has been aliased to "json_pretty". In a future release,
+ "json" will be an alias for "json_compact". GitHub issue #357.
+
+ * A new "pam_silent" sudoers option has been added which may be
+ negated to avoid suppressing output from PAM authentication modules.
+ GitHub issue #216.
+
+ * Fixed several cvtsudoers JSON output problems.
+ GitHub issues #369, #370, #371, #373, #381.
+
+ * Sudo will now send SIGHUP to the foreground process when running
+
+ * When sudo runs a command in a pseudo-terminal and the user's
+ terminal is revoked, the pseudo-terminal's foreground process
+ group will now receive SIGHUP before the terminal is revoked.
+ This emulates the behavior of the session leader exiting and is
+ consistent with what happens when, for example, an ssh session
+ is closed. GitHub issue #367.
+
+ * Fixed "make test" with Python 3.12. GitHub issue #374.
+
+ * In schema.ActiveDirectory, fixed the quoting in the example command.
+ GitHub issue #376.
+
+ * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may
+ now be double-quoted.
+
+ * Sudo insults are now included by default, but disabled unless
+ the --with-insults configure option is specified or the "insults"
+ sudoers option is enabled.
+
What's new in Sudo 1.9.15p5
* Fixed evaluation of the "lecture", "listpw", "verifypw", and
diff --git a/configure b/configure
index 63923ef9a..0f474168f 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for sudo 1.9.15p5.
+# Generated by GNU Autoconf 2.72 for sudo 1.9.16.
#
# Report bugs to .
#
@@ -614,8 +614,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sudo'
PACKAGE_TARNAME='sudo'
-PACKAGE_VERSION='1.9.15p5'
-PACKAGE_STRING='sudo 1.9.15p5'
+PACKAGE_VERSION='1.9.16'
+PACKAGE_STRING='sudo 1.9.16'
PACKAGE_BUGREPORT='https://bugzilla.sudo.ws/'
PACKAGE_URL=''
@@ -1641,7 +1641,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures sudo 1.9.15p5 to adapt to many kinds of systems.
+'configure' configures sudo 1.9.16 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1707,7 +1707,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of sudo 1.9.15p5:";;
+ short | recursive ) echo "Configuration of sudo 1.9.16:";;
esac
cat <<\_ACEOF
@@ -1999,7 +1999,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-sudo configure 1.9.15p5
+sudo configure 1.9.16
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2819,7 +2819,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by sudo $as_me 1.9.15p5, which was
+It was created by sudo $as_me 1.9.16, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -36710,7 +36710,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by sudo $as_me 1.9.15p5, which was
+This file was extended by sudo $as_me 1.9.16, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -36778,7 +36778,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-sudo config.status 1.9.15p5
+sudo config.status 1.9.16
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 679272443..c50e7d554 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ dnl Use the top-level autogen.sh script to generate configure and config.h.in
dnl
dnl SPDX-License-Identifier: ISC
dnl
-dnl Copyright (c) 1994-1996, 1998-2023 Todd C. Miller
+dnl Copyright (c) 1994-1996, 1998-2024 Todd C. Miller
dnl
dnl Permission to use, copy, modify, and distribute this software for any
dnl purpose with or without fee is hereby granted, provided that the above
@@ -18,7 +18,7 @@ dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dnl
AC_PREREQ([2.69])
-AC_INIT([sudo], [1.9.15p5], [https://bugzilla.sudo.ws/], [sudo])
+AC_INIT([sudo], [1.9.16], [https://bugzilla.sudo.ws/], [sudo])
AC_CONFIG_HEADERS([config.h pathnames.h])
AC_CONFIG_SRCDIR([src/sudo.c])
AC_CONFIG_AUX_DIR([scripts])