wok diff pam/stuff/CVE-2024-22365.patch @ rev 25649

Patch pam CVE-2024-22365
author Stanislas Leduc <shann@slitaz.org>
date Fri Feb 02 19:36:21 2024 +0100 (4 months ago)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/pam/stuff/CVE-2024-22365.patch	Fri Feb 02 19:36:21 2024 +0100
     1.3 @@ -0,0 +1,36 @@
     1.4 +diff --git a/modules/pam_namespace/pam_namespace.c b/modules/pam_namespace/pam_namespace.c
     1.5 +index 2528cff86..f72d67189 100644
     1.6 +--- a/modules/pam_namespace/pam_namespace.c
     1.7 ++++ b/modules/pam_namespace/pam_namespace.c
     1.8 +@@ -1201,7 +1201,7 @@ static int protect_dir(const char *path, mode_t mode, int do_mkdir,
     1.9 + 	int dfd = AT_FDCWD;
    1.10 + 	int dfd_next;
    1.11 + 	int save_errno;
    1.12 +-	int flags = O_RDONLY;
    1.13 ++	int flags = O_RDONLY | O_DIRECTORY;
    1.14 + 	int rv = -1;
    1.15 + 	struct stat st;
    1.16 + 
    1.17 +@@ -1255,22 +1255,6 @@ static int protect_dir(const char *path, mode_t mode, int do_mkdir,
    1.18 + 		rv = openat(dfd, dir, flags);
    1.19 + 	}
    1.20 + 
    1.21 +-	if (rv != -1) {
    1.22 +-		if (fstat(rv, &st) != 0) {
    1.23 +-			save_errno = errno;
    1.24 +-			close(rv);
    1.25 +-			rv = -1;
    1.26 +-			errno = save_errno;
    1.27 +-			goto error;
    1.28 +-		}
    1.29 +-		if (!S_ISDIR(st.st_mode)) {
    1.30 +-			close(rv);
    1.31 +-			errno = ENOTDIR;
    1.32 +-			rv = -1;
    1.33 +-			goto error;
    1.34 +-		}
    1.35 +-	}
    1.36 +-
    1.37 + 	if (flags & O_NOFOLLOW) {
    1.38 + 		/* we are inside user-owned dir - protect */
    1.39 + 		if (protect_mount(rv, p, idata) == -1) {