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) {