summaryrefslogtreecommitdiffstats
path: root/patches/source/util-linux/doinst.sh
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2022-02-15 20:00:48 +0000
committer Eric Hameleers <alien@slackware.com>2022-02-16 13:29:58 +0100
commitc9881ad9794a314c7c9d106a6f82d19f07cda088 (patch)
tree196a5646afe2bf7edaab38ad306d42a6d56967fe /patches/source/util-linux/doinst.sh
parent9a5f4fd634196e1d4257a31e89f24291b0398bc5 (diff)
downloadcurrent-c9881ad9794a314c7c9d106a6f82d19f07cda088.tar.gz
current-c9881ad9794a314c7c9d106a6f82d19f07cda088.tar.xz
Tue Feb 15 20:00:48 UTC 202220220215200048_15.0
patches/packages/aaa_base-15.0-x86_64-4_slack15.0.txz: Rebuilt. If root's mailbox did not already exist, it would be created with insecure permissions leading to possible local information disclosure. This update ensures that a new mailbox will be created with proper permissions and ownership, and corrects the permissions on an existing mailbox if they are found to be incorrect. Thanks to Martin for the bug report. (* Security fix *) patches/packages/util-linux-2.37.4-x86_64-1_slack15.0.txz: Upgraded. This release fixes a security issue in chsh(1) and chfn(8): By default, these utilities had been linked with libreadline, which allows the INPUTRC environment variable to be abused to produce an error message containing data from an arbitrary file. So, don't link these utilities with libreadline as it does not use secure_getenv() (or a similar concept), or sanitize the config file path to avoid vulnerabilities that could occur in set-user-ID or set-group-ID programs. For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-0563 (* Security fix *)
Diffstat (limited to 'patches/source/util-linux/doinst.sh')
-rw-r--r--patches/source/util-linux/doinst.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/patches/source/util-linux/doinst.sh b/patches/source/util-linux/doinst.sh
new file mode 100644
index 000000000..8277c0e65
--- /dev/null
+++ b/patches/source/util-linux/doinst.sh
@@ -0,0 +1,33 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Keep same perms on rc.serial.new:
+if [ -e etc/rc.d/rc.serial ]; then
+ cp -a etc/rc.d/rc.serial etc/rc.d/rc.serial.new.incoming
+ cat etc/rc.d/rc.serial.new > etc/rc.d/rc.serial.new.incoming
+ mv etc/rc.d/rc.serial.new.incoming etc/rc.d/rc.serial.new
+fi
+
+config etc/rc.d/rc.serial.new
+config etc/rc.d/rc.setterm.new
+config etc/serial.conf.new
+
+for configfile in chfn.new chsh.new login.new runuser.new runuser-l.new su.new su-l.new ; do
+ if [ -r etc/pam.d/$configfile ]; then
+ config etc/pam.d/$configfile
+ fi
+done
+
+if [ -r etc/default/su.new ]; then
+ config etc/default/su.new
+fi