Fix regression in new code
CVE-2005-4889-rpm-fails-to-drop-SUID-SGID-bits-on-package fails with the new code as older glibc versions don't support AT_SYMLINK_NOFOLLOW for fchmodat. Fixed upstream as https://github.com/rpm-software-management/rpm/pull/2759 Resolves: RHEL-9561 RHEL-9563 RHEL-9565
This commit is contained in:
parent
e91f7f791b
commit
284b6bc6f8
@ -513,7 +513,7 @@ index daf572cf4..e74bb2201 100644
|
|||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
switch (errno) {
|
switch (errno) {
|
||||||
case ENOENT: rc = RPMERR_ENOENT; break;
|
case ENOENT: rc = RPMERR_ENOENT; break;
|
||||||
@@ -365,172 +288,193 @@
|
@@ -365,172 +288,194 @@
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -819,9 +819,10 @@ index daf572cf4..e74bb2201 100644
|
|||||||
- if (lstat(path, &stb) == 0 && S_ISREG(stb.st_mode)) {
|
- if (lstat(path, &stb) == 0 && S_ISREG(stb.st_mode)) {
|
||||||
+ int flags = AT_SYMLINK_NOFOLLOW;
|
+ int flags = AT_SYMLINK_NOFOLLOW;
|
||||||
+ if (fstatat(dirfd, path, &stb, flags) == 0 && S_ISREG(stb.st_mode)) {
|
+ if (fstatat(dirfd, path, &stb, flags) == 0 && S_ISREG(stb.st_mode)) {
|
||||||
|
+ /* We now know it's not a link so no need to worry about following */
|
||||||
if ((stb.st_mode & 06000) != 0) {
|
if ((stb.st_mode & 06000) != 0) {
|
||||||
- (void) chmod(path, stb.st_mode & 0777);
|
- (void) chmod(path, stb.st_mode & 0777);
|
||||||
+ (void) fchmodat(dirfd, path, stb.st_mode & 0777, flags);
|
+ (void) fchmodat(dirfd, path, stb.st_mode & 0777, 0);
|
||||||
}
|
}
|
||||||
-#if WITH_CAP
|
-#if WITH_CAP
|
||||||
+#ifdef WITH_CAP
|
+#ifdef WITH_CAP
|
||||||
|
4
rpm.spec
4
rpm.spec
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
%global rpmver 4.14.3
|
%global rpmver 4.14.3
|
||||||
#global snapver rc2
|
#global snapver rc2
|
||||||
%global rel 29
|
%global rel 30
|
||||||
|
|
||||||
%global srcver %{version}%{?snapver:-%{snapver}}
|
%global srcver %{version}%{?snapver:-%{snapver}}
|
||||||
%global srcdir %{?snapver:testing}%{!?snapver:%{name}-%(echo %{version} | cut -d'.' -f1-2).x}
|
%global srcdir %{?snapver:testing}%{!?snapver:%{name}-%(echo %{version} | cut -d'.' -f1-2).x}
|
||||||
@ -707,7 +707,7 @@ make check || cat tests/rpmtests.log
|
|||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Nov 07 2023 Florian Festi <ffesti@redhat.com> - 4.14.3-29
|
* Fri Nov 10 2023 Florian Festi <ffesti@redhat.com> - 4.14.3-30
|
||||||
- Backport file handling code from rpm-4.19 to fix CVE-2021-35937,
|
- Backport file handling code from rpm-4.19 to fix CVE-2021-35937,
|
||||||
CVE-2021-35938 and CVE-2021-35939
|
CVE-2021-35938 and CVE-2021-35939
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user