diff options
| author | John Kehayias <john@guixotic.coop> | 2026-02-15 23:35:20 -0500 |
|---|---|---|
| committer | John Kehayias <john@guixotic.coop> | 2026-02-20 01:08:07 -0500 |
| commit | d659fe8666c4bc38fcbdbe7b7a35101f2d7cc41b (patch) | |
| tree | 06b4790f823dbadf067b06783c03216317849b21 | |
| parent | 86c4c0797115047155701083eee30163904f36ed (diff) | |
gnu: glibc: Graft with fix for unsafe env variable [security-fixes].
Before this change, the environment variable GUIX_LOCPATH is not in the unsafe
variable list, meaning that it is not unset in a privileged environment. This
could lead to potential security issues. A CVE number is pending for this
issue. A similar upstream glibc issue was CVE-2023-4911.
* gnu/packages/base.scm (glibc)[replacement]: Add field to graft with ...
(glibc/fixed): ... this new package.
* gnu/packages/patches/glibc-guix-locpath.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Change-Id: I74d87ce543bfba7d5f424efb2b87926ca336c725
Reported-by: "Stefan" <stefan-guix@vodafonemail.de>
| -rw-r--r-- | gnu/local.mk | 1 | ||||
| -rw-r--r-- | gnu/packages/base.scm | 14 | ||||
| -rw-r--r-- | gnu/packages/patches/glibc-guix-locpath.patch | 13 |
3 files changed, 27 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 195448c6a70..797e063c759 100644 --- a/gnu/local.mk +++ b/gnu/local.mk | |||
| @@ -1482,6 +1482,7 @@ dist_patch_DATA = \ | |||
| 1482 | %D%/packages/patches/glibc-cross-objcopy.patch \ | 1482 | %D%/packages/patches/glibc-cross-objcopy.patch \ |
| 1483 | %D%/packages/patches/glibc-cross-objdump.patch \ | 1483 | %D%/packages/patches/glibc-cross-objdump.patch \ |
| 1484 | %D%/packages/patches/glibc-dl-cache.patch \ | 1484 | %D%/packages/patches/glibc-dl-cache.patch \ |
| 1485 | %D%/packages/patches/glibc-guix-locpath.patch \ | ||
| 1485 | %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \ | 1486 | %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \ |
| 1486 | %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \ | 1487 | %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \ |
| 1487 | %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \ | 1488 | %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \ |
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 81913168c16..31ad20e2ee9 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> | 21 | ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> |
| 22 | ;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim@guixotic.coop> | 22 | ;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim@guixotic.coop> |
| 23 | ;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe> | 23 | ;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe> |
| 24 | ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> | 24 | ;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop> |
| 25 | ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz> | 25 | ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz> |
| 26 | ;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online> | 26 | ;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online> |
| 27 | ;;; | 27 | ;;; |
| @@ -957,6 +957,7 @@ the store.") | |||
| 957 | (properties `((lint-hidden-cve . ("CVE-2024-2961" | 957 | (properties `((lint-hidden-cve . ("CVE-2024-2961" |
| 958 | "CVE-2024-33601" "CVE-2024-33602" | 958 | "CVE-2024-33601" "CVE-2024-33602" |
| 959 | "CVE-2024-33600" "CVE-2024-33599")))) | 959 | "CVE-2024-33600" "CVE-2024-33599")))) |
| 960 | (replacement glibc/fixed) | ||
| 960 | (build-system gnu-build-system) | 961 | (build-system gnu-build-system) |
| 961 | 962 | ||
| 962 | ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc | 963 | ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc |
| @@ -1234,6 +1235,17 @@ with the Linux kernel.") | |||
| 1234 | (license lgpl2.0+) | 1235 | (license lgpl2.0+) |
| 1235 | (home-page "https://www.gnu.org/software/libc/"))) | 1236 | (home-page "https://www.gnu.org/software/libc/"))) |
| 1236 | 1237 | ||
| 1238 | (define glibc/fixed | ||
| 1239 | (package | ||
| 1240 | (inherit glibc) | ||
| 1241 | (name "glibc") | ||
| 1242 | (source (origin | ||
| 1243 | (inherit (package-source glibc)) | ||
| 1244 | ;; XXX: When ungrafting, add the included patch to | ||
| 1245 | ;; %glibc-patches. | ||
| 1246 | (patches (cons (search-patch "glibc-guix-locpath.patch") | ||
| 1247 | (origin-patches (package-source glibc)))))))) | ||
| 1248 | |||
| 1237 | ;; Define a variation of glibc which uses the default /etc/ld.so.cache, useful | 1249 | ;; Define a variation of glibc which uses the default /etc/ld.so.cache, useful |
| 1238 | ;; in FHS containers. | 1250 | ;; in FHS containers. |
| 1239 | (define-public glibc-for-fhs | 1251 | (define-public glibc-for-fhs |
diff --git a/gnu/packages/patches/glibc-guix-locpath.patch b/gnu/packages/patches/glibc-guix-locpath.patch new file mode 100644 index 00000000000..5bba574a8c8 --- /dev/null +++ b/gnu/packages/patches/glibc-guix-locpath.patch | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | Patch to add the GUIX_LOCPATH environment variable to ones that should | ||
| 2 | be unset for SUID programs, same as LOCPATH. | ||
| 3 | |||
| 4 | --- glibc-2.41-old/sysdeps/generic/unsecvars.h | ||
| 5 | +++ glibc-2.41/sysdeps/generic/unsecvars.h | ||
| 6 | @@ -5,6 +5,7 @@ | ||
| 7 | "GCONV_PATH\0" \ | ||
| 8 | "GETCONF_DIR\0" \ | ||
| 9 | "GLIBC_TUNABLES\0" \ | ||
| 10 | + "GUIX_LOCPATH\0" \ | ||
| 11 | "HOSTALIASES\0" \ | ||
| 12 | "LD_AUDIT\0" \ | ||
| 13 | "LD_BIND_NOT\0" \ | ||
