[arch-commits] Commit in pam/repos/testing-x86_64 (8 files)

Tobias Powalowski tpowa at archlinux.org
Wed Aug 12 19:37:58 UTC 2020


    Date: Wednesday, August 12, 2020 @ 19:37:58
  Author: tpowa
Revision: 393564

archrelease: copy trunk to testing-x86_64

Added:
  pam/repos/testing-x86_64/0e9b286afe1224b91ff00936058b084ad4b776e4.patch
    (from rev 393563, pam/trunk/0e9b286afe1224b91ff00936058b084ad4b776e4.patch)
  pam/repos/testing-x86_64/395915dae1571e10e2766c999974de864655ea3a.patch
    (from rev 393563, pam/trunk/395915dae1571e10e2766c999974de864655ea3a.patch)
  pam/repos/testing-x86_64/PKGBUILD
    (from rev 393563, pam/trunk/PKGBUILD)
  pam/repos/testing-x86_64/af0faf666c5008e54dfe43684f210e3581ff1bca.patch
    (from rev 393563, pam/trunk/af0faf666c5008e54dfe43684f210e3581ff1bca.patch)
  pam/repos/testing-x86_64/other
    (from rev 393563, pam/trunk/other)
  pam/repos/testing-x86_64/pam.tmpfiles
    (from rev 393563, pam/trunk/pam.tmpfiles)
Deleted:
  pam/repos/testing-x86_64/PKGBUILD
  pam/repos/testing-x86_64/other

------------------------------------------------+
 0e9b286afe1224b91ff00936058b084ad4b776e4.patch |   31 +++++++
 395915dae1571e10e2766c999974de864655ea3a.patch |   47 ++++++++++
 PKGBUILD                                       |   99 +++++++++++++----------
 af0faf666c5008e54dfe43684f210e3581ff1bca.patch |   85 +++++++++++++++++++
 other                                          |   10 +-
 pam.tmpfiles                                   |    1 
 6 files changed, 227 insertions(+), 46 deletions(-)

Copied: pam/repos/testing-x86_64/0e9b286afe1224b91ff00936058b084ad4b776e4.patch (from rev 393563, pam/trunk/0e9b286afe1224b91ff00936058b084ad4b776e4.patch)
===================================================================
--- 0e9b286afe1224b91ff00936058b084ad4b776e4.patch	                        (rev 0)
+++ 0e9b286afe1224b91ff00936058b084ad4b776e4.patch	2020-08-12 19:37:58 UTC (rev 393564)
@@ -0,0 +1,31 @@
+From 0e9b286afe1224b91ff00936058b084ad4b776e4 Mon Sep 17 00:00:00 2001
+From: ikerexxe <ipedrosa at redhat.com>
+Date: Tue, 16 Jun 2020 14:44:04 +0200
+Subject: [PATCH] pam_usertype: avoid determining if user exists
+
+Taking a look at the time for the password prompt to appear it was
+possible to determine if a user existed in a system. Solved it by
+matching the runtime until the password prompt was shown by always
+checking the password hash for an existing and a non-existing user.
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
+---
+ modules/pam_usertype/pam_usertype.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules/pam_usertype/pam_usertype.c b/modules/pam_usertype/pam_usertype.c
+index 2807c306..d03b73b5 100644
+--- a/modules/pam_usertype/pam_usertype.c
++++ b/modules/pam_usertype/pam_usertype.c
+@@ -139,8 +139,11 @@ pam_usertype_get_uid(struct pam_usertype_opts *opts,
+                        "error retrieving information about user %s", username);
+         }
+ 
++        pam_modutil_getpwnam(pamh, "root");
++
+         return PAM_USER_UNKNOWN;
+     }
++    pam_modutil_getpwnam(pamh, "pam_usertype_non_existent:");
+ 
+     *_uid = pwd->pw_uid;
+ 

Copied: pam/repos/testing-x86_64/395915dae1571e10e2766c999974de864655ea3a.patch (from rev 393563, pam/trunk/395915dae1571e10e2766c999974de864655ea3a.patch)
===================================================================
--- 395915dae1571e10e2766c999974de864655ea3a.patch	                        (rev 0)
+++ 395915dae1571e10e2766c999974de864655ea3a.patch	2020-08-12 19:37:58 UTC (rev 393564)
@@ -0,0 +1,47 @@
+From 395915dae1571e10e2766c999974de864655ea3a Mon Sep 17 00:00:00 2001
+From: ikerexxe <ipedrosa at redhat.com>
+Date: Mon, 15 Jun 2020 09:52:11 +0200
+Subject: [PATCH] pam_faillock: change /run/faillock/$USER permissions to 0660
+
+Nowadays, /run/faillock/$USER files have user:root ownership and 0600
+permissions. This forces the process that writes to these files to have
+CAP_DAC_OVERRIDE capabilites. Just by changing the permissions to 0660
+the capability can be removed, which leads to a more secure system.
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1661822
+---
+ modules/pam_faillock/faillock.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/modules/pam_faillock/faillock.c b/modules/pam_faillock/faillock.c
+index e492f5f9..4ea94cbe 100644
+--- a/modules/pam_faillock/faillock.c
++++ b/modules/pam_faillock/faillock.c
+@@ -76,7 +76,7 @@ open_tally (const char *dir, const char *user, uid_t uid, int create)
+ 		flags |= O_CREAT;
+ 	}
+ 
+-	fd = open(path, flags, 0600);
++	fd = open(path, flags, 0660);
+ 
+ 	free(path);
+ 
+@@ -88,6 +88,18 @@ open_tally (const char *dir, const char *user, uid_t uid, int create)
+ 			if (st.st_uid != uid) {
+ 				ignore_return(fchown(fd, uid, -1));
+ 			}
++
++			/*
++			 * If umask is set to 022, as will probably in most systems, then the
++			 * group will not be able to write to the file. So, change the file
++			 * permissions just in case.
++			 * Note: owners of this file are user:root, so if the permissions are
++			 * not changed the root process writing to this file will require
++			 * CAP_DAC_OVERRIDE.
++			 */
++			if (!(st.st_mode & S_IWGRP)) {
++				ignore_return(fchmod(fd, 0660));
++			}
+ 		}
+ 	}
+ 

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2020-08-12 19:37:46 UTC (rev 393563)
+++ PKGBUILD	2020-08-12 19:37:58 UTC (rev 393564)
@@ -1,41 +0,0 @@
-# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
-# Contributor: judd <jvinet at zeroflux.org>
-
-pkgname=pam
-pkgver=1.4.0
-pkgrel=2
-pkgdesc="PAM (Pluggable Authentication Modules) library"
-arch=('x86_64')
-license=('GPL2')
-url="http://linux-pam.org"
-depends=('glibc' 'cracklib' 'libtirpc' 'pambase' 'audit')
-makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
-backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/environment)
-source=(https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz
-        https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz.asc)
-validpgpkeys=(
-        '296D6F29A020808E8717A8842DB5BD89A340AEB7' #Dimitry V. Levin <ldv at altlinux.org>
-)
-
-sha256sums=('cd6d928c51e64139be3bdb38692c68183a509b83d4f2c221024ccd4bcddfd034'
-            'SKIP')
-
-options=('!emptydirs')
-
-build() {
-  cd Linux-PAM-$pkgver
-  ./configure --libdir=/usr/lib --sbindir=/usr/bin --disable-db
-  make
-}
-
-package() {
-  cd Linux-PAM-$pkgver
-  make DESTDIR="$pkgdir" SCONFIGDIR=/etc/security install
-
-  # set unix_chkpwd uid
-  chmod +s "$pkgdir"/usr/bin/unix_chkpwd
-
-  # remove doc which is not used anymore
-  # FS #40749
-  rm "$pkgdir"/usr/share/doc/Linux-PAM/sag-pam_userdb.html
-}

Copied: pam/repos/testing-x86_64/PKGBUILD (from rev 393563, pam/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-08-12 19:37:58 UTC (rev 393564)
@@ -0,0 +1,58 @@
+# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
+# Contributor: judd <jvinet at zeroflux.org>
+
+pkgname=pam
+pkgver=1.4.0
+pkgrel=3
+pkgdesc="PAM (Pluggable Authentication Modules) library"
+arch=('x86_64')
+license=('GPL2')
+url="http://linux-pam.org"
+depends=('glibc' 'libtirpc' 'pambase' 'audit')
+makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
+backup=(etc/security/{access.conf,faillock.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/environment)
+source=(https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz
+        https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz.asc
+        395915dae1571e10e2766c999974de864655ea3a.patch
+        af0faf666c5008e54dfe43684f210e3581ff1bca.patch
+        0e9b286afe1224b91ff00936058b084ad4b776e4.patch
+        $pkgname.tmpfiles)
+validpgpkeys=(
+        '8C6BFD92EE0F42EDF91A6A736D1A7F052E5924BB' # Thorsten Kukuk
+        '296D6F29A020808E8717A8842DB5BD89A340AEB7' #Dimitry V. Levin <ldv at altlinux.org>
+)
+
+sha256sums=('cd6d928c51e64139be3bdb38692c68183a509b83d4f2c221024ccd4bcddfd034'
+            'SKIP'
+            'cd2440d7bec55fa91e499060c0bf248f4fd20e7a0ef613eb7a06ee083f7ce21b'
+            'ac3e1d307756f5975587a7846500414c02d2b60acb271017b9c7aa6f47c89875'
+            '68f81b67dde5ee6003524b6b14e2d6f27edcfc0a2bde4c55a1cacbc6e299c207'
+            '5631f224e90c4f0459361c2a5b250112e3a91ba849754bb6f67d69d683a2e5ac')
+
+options=('!emptydirs')
+
+prepare() {
+  cd Linux-PAM-$pkgver
+  patch -p1 -i ../395915dae1571e10e2766c999974de864655ea3a.patch
+  patch -p1 -i ../af0faf666c5008e54dfe43684f210e3581ff1bca.patch
+  patch -p1 -i ../0e9b286afe1224b91ff00936058b084ad4b776e4.patch
+}
+
+build() {
+  cd Linux-PAM-$pkgver
+  ./configure --libdir=/usr/lib --sbindir=/usr/bin --disable-db
+  make
+}
+
+package() {
+  install -Dm 644 $pkgname.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/$pkgname.conf
+  cd Linux-PAM-$pkgver
+  make DESTDIR="$pkgdir" SCONFIGDIR=/etc/security install
+
+  # set unix_chkpwd uid
+  chmod +s "$pkgdir"/usr/bin/unix_chkpwd
+
+  # remove doc which is not used anymore
+  # FS #40749
+  rm "$pkgdir"/usr/share/doc/Linux-PAM/sag-pam_userdb.html
+}

Copied: pam/repos/testing-x86_64/af0faf666c5008e54dfe43684f210e3581ff1bca.patch (from rev 393563, pam/trunk/af0faf666c5008e54dfe43684f210e3581ff1bca.patch)
===================================================================
--- af0faf666c5008e54dfe43684f210e3581ff1bca.patch	                        (rev 0)
+++ af0faf666c5008e54dfe43684f210e3581ff1bca.patch	2020-08-12 19:37:58 UTC (rev 393564)
@@ -0,0 +1,85 @@
+From af0faf666c5008e54dfe43684f210e3581ff1bca Mon Sep 17 00:00:00 2001
+From: ikerexxe <ipedrosa at redhat.com>
+Date: Tue, 16 Jun 2020 14:32:36 +0200
+Subject: [PATCH] pam_unix: avoid determining if user exists
+
+Taking a look at the time for the password prompt to appear it was
+possible to determine if a user existed in a system. Solved it by
+matching the runtime until the password prompt was shown by always
+checking the password hash for an existing and a non-existing user.
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
+---
+ modules/pam_unix/passverify.c |  6 ++++++
+ modules/pam_unix/support.c    | 33 ++++++++++++++++++++++++++-------
+ 2 files changed, 32 insertions(+), 7 deletions(-)
+
+diff --git a/modules/pam_unix/passverify.c b/modules/pam_unix/passverify.c
+index a571b4f7..7455eae6 100644
+--- a/modules/pam_unix/passverify.c
++++ b/modules/pam_unix/passverify.c
+@@ -1096,6 +1096,12 @@ helper_verify_password(const char *name, const char *p, int nullok)
+ 	if (pwd == NULL || hash == NULL) {
+ 		helper_log_err(LOG_NOTICE, "check pass; user unknown");
+ 		retval = PAM_USER_UNKNOWN;
++	} else if (p[0] == '\0' && nullok) {
++		if (hash[0] == '\0') {
++			retval = PAM_SUCCESS;
++		} else {
++			retval = PAM_AUTH_ERR;
++		}
+ 	} else {
+ 		retval = verify_pwd_hash(p, hash, nullok);
+ 	}
+diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c
+index 41db1f04..dc67238c 100644
+--- a/modules/pam_unix/support.c
++++ b/modules/pam_unix/support.c
+@@ -601,6 +601,8 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned long long ctrl, const char *name
+ 	char *salt = NULL;
+ 	int daysleft;
+ 	int retval;
++	int execloop = 1;
++	int nonexistent = 1;
+ 
+ 	D(("called"));
+ 
+@@ -624,14 +626,31 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned long long ctrl, const char *name
+ 
+ 	/* UNIX passwords area */
+ 
+-	retval = get_pwd_hash(pamh, name, &pwd, &salt);
++	/*
++	 * Execute this loop twice: one checking the password hash of an existing
++	 * user and another one for a non-existing user. This way the runtimes
++	 * are equal, making it more difficult to differentiate existing from
++	 * non-existing users.
++	 */
++	while (execloop) {
++		retval = get_pwd_hash(pamh, name, &pwd, &salt);
+ 
+-	if (retval == PAM_UNIX_RUN_HELPER) {
+-		/* salt will not be set here so we can return immediately */
+-		if (_unix_run_helper_binary(pamh, NULL, ctrl, name) == PAM_SUCCESS)
+-			return 1;
+-		else
+-			return 0;
++		if (retval == PAM_UNIX_RUN_HELPER) {
++			execloop = 0;
++			if(nonexistent) {
++				get_pwd_hash(pamh, "pam_unix_non_existent:", &pwd, &salt);
++			}
++			/* salt will not be set here so we can return immediately */
++			if (_unix_run_helper_binary(pamh, NULL, ctrl, name) == PAM_SUCCESS)
++				return 1;
++			else
++				return 0;
++		} else if (retval == PAM_USER_UNKNOWN) {
++			name = "root";
++			nonexistent = 0;
++		} else {
++			execloop = 0;
++		}
+ 	}
+ 
+ 	/* Does this user have a password? */

Deleted: other
===================================================================
--- other	2020-08-12 19:37:46 UTC (rev 393563)
+++ other	2020-08-12 19:37:58 UTC (rev 393564)
@@ -1,5 +0,0 @@
-#%PAM-1.0
-auth		required	pam_unix.so
-account		required	pam_unix.so
-password	required	pam_unix.so
-session		required	pam_unix.so

Copied: pam/repos/testing-x86_64/other (from rev 393563, pam/trunk/other)
===================================================================
--- other	                        (rev 0)
+++ other	2020-08-12 19:37:58 UTC (rev 393564)
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth		required	pam_unix.so
+account		required	pam_unix.so
+password	required	pam_unix.so
+session		required	pam_unix.so

Copied: pam/repos/testing-x86_64/pam.tmpfiles (from rev 393563, pam/trunk/pam.tmpfiles)
===================================================================
--- pam.tmpfiles	                        (rev 0)
+++ pam.tmpfiles	2020-08-12 19:37:58 UTC (rev 393564)
@@ -0,0 +1 @@
+d /run/faillock 0755 root root -



More information about the arch-commits mailing list