[arch-commits] Commit in pam/trunk (5 files)

Levente Polyak anthraxx at archlinux.org
Tue Nov 24 19:04:34 UTC 2020


    Date: Tuesday, November 24, 2020 @ 19:04:33
  Author: anthraxx
Revision: 401836

upgpkg: pam 1.5.0-2: backport security fix fox CVE-2020-27780

- adding soname provides
- adding a transitive dependency

Modified:
  pam/trunk/PKGBUILD
Deleted:
  pam/trunk/0e9b286afe1224b91ff00936058b084ad4b776e4.patch
  pam/trunk/395915dae1571e10e2766c999974de864655ea3a.patch
  pam/trunk/af0faf666c5008e54dfe43684f210e3581ff1bca.patch
  pam/trunk/other

------------------------------------------------+
 0e9b286afe1224b91ff00936058b084ad4b776e4.patch |   31 --------
 395915dae1571e10e2766c999974de864655ea3a.patch |   47 ------------
 PKGBUILD                                       |   21 ++---
 af0faf666c5008e54dfe43684f210e3581ff1bca.patch |   85 -----------------------
 other                                          |    5 -
 5 files changed, 11 insertions(+), 178 deletions(-)

Deleted: 0e9b286afe1224b91ff00936058b084ad4b776e4.patch
===================================================================
--- 0e9b286afe1224b91ff00936058b084ad4b776e4.patch	2020-11-24 18:02:37 UTC (rev 401835)
+++ 0e9b286afe1224b91ff00936058b084ad4b776e4.patch	2020-11-24 19:04:33 UTC (rev 401836)
@@ -1,31 +0,0 @@
-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;
- 

Deleted: 395915dae1571e10e2766c999974de864655ea3a.patch
===================================================================
--- 395915dae1571e10e2766c999974de864655ea3a.patch	2020-11-24 18:02:37 UTC (rev 401835)
+++ 395915dae1571e10e2766c999974de864655ea3a.patch	2020-11-24 19:04:33 UTC (rev 401836)
@@ -1,47 +0,0 @@
-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));
-+			}
- 		}
- 	}
- 

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-11-24 18:02:37 UTC (rev 401835)
+++ PKGBUILD	2020-11-24 19:04:33 UTC (rev 401836)
@@ -3,19 +3,17 @@
 
 pkgname=pam
 pkgver=1.5.0
-pkgrel=1
+pkgrel=2
 pkgdesc="PAM (Pluggable Authentication Modules) library"
 arch=('x86_64')
 license=('GPL2')
 url="http://linux-pam.org"
-depends=('glibc' 'libtirpc' 'pambase' 'audit')
+depends=('glibc' 'libtirpc' 'pambase' 'audit' 'libaudit.so' 'libxcrypt' 'libcrypt.so')
 makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
+provides=('libpam.so' 'libpamc.so' 'libpam_misc.so')
 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
+source=(https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz{,.asc}
+        CVE-2020-27780.patch::https://github.com/linux-pam/linux-pam/commit/30fdfb90d9864bcc254a62760aaa149d373fd4eb.patch
         $pkgname.tmpfiles)
 validpgpkeys=(
         '8C6BFD92EE0F42EDF91A6A736D1A7F052E5924BB' # Thorsten Kukuk
@@ -24,13 +22,16 @@
 
 sha256sums=('02d39854b508fae9dc713f7733bbcdadbe17b50de965aedddd65bcb6cc7852c8'
             'SKIP'
-            'cd2440d7bec55fa91e499060c0bf248f4fd20e7a0ef613eb7a06ee083f7ce21b'
-            'ac3e1d307756f5975587a7846500414c02d2b60acb271017b9c7aa6f47c89875'
-            '68f81b67dde5ee6003524b6b14e2d6f27edcfc0a2bde4c55a1cacbc6e299c207'
+            'b785b637e4bf4c0a1601c296b562ee2eed09916cc589dc4021fa1abc6c5394c8'
             '5631f224e90c4f0459361c2a5b250112e3a91ba849754bb6f67d69d683a2e5ac')
 
 options=('!emptydirs')
 
+prepare() {
+  cd Linux-PAM-$pkgver
+  patch -Np1 < ../CVE-2020-27780.patch
+}
+
 build() {
   cd Linux-PAM-$pkgver
   ./configure --libdir=/usr/lib --sbindir=/usr/bin --disable-db

Deleted: af0faf666c5008e54dfe43684f210e3581ff1bca.patch
===================================================================
--- af0faf666c5008e54dfe43684f210e3581ff1bca.patch	2020-11-24 18:02:37 UTC (rev 401835)
+++ af0faf666c5008e54dfe43684f210e3581ff1bca.patch	2020-11-24 19:04:33 UTC (rev 401836)
@@ -1,85 +0,0 @@
-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-11-24 18:02:37 UTC (rev 401835)
+++ other	2020-11-24 19:04:33 UTC (rev 401836)
@@ -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



More information about the arch-commits mailing list