]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
util-linux: patch CVE-2025-14104
authorPeter Marko <peter.marko@siemens.com>
Tue, 30 Dec 2025 20:54:20 +0000 (21:54 +0100)
committerPaul Barker <paul@pbarker.dev>
Mon, 26 Jan 2026 09:00:05 +0000 (09:00 +0000)
Pick patches per [1].

[1] https://security-tracker.debian.org/tracker/CVE-2025-14104

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
meta/recipes-core/util-linux/util-linux.inc
meta/recipes-core/util-linux/util-linux/CVE-2025-14104-01.patch [new file with mode: 0644]
meta/recipes-core/util-linux/util-linux/CVE-2025-14104-02.patch [new file with mode: 0644]

index c62c6d70c349f81e7754f2fa0cfdd045de9f4abe..a8b505a1225bef0f386aa338fe219a241eb8fd59 100644 (file)
@@ -42,6 +42,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
            file://CVE-2024-28085-0004.patch \
            file://CVE-2024-28085-0005.patch \
           file://fstab-isolation.patch \
+           file://CVE-2025-14104-01.patch \
+           file://CVE-2025-14104-02.patch \
            "
 
 SRC_URI[sha256sum] = "634e6916ad913366c3536b6468e7844769549b99a7b2bf80314de78ab5655b83"
diff --git a/meta/recipes-core/util-linux/util-linux/CVE-2025-14104-01.patch b/meta/recipes-core/util-linux/util-linux/CVE-2025-14104-01.patch
new file mode 100644 (file)
index 0000000..2367734
--- /dev/null
@@ -0,0 +1,33 @@
+From aaa9e718c88d6916b003da7ebcfe38a3c88df8e6 Mon Sep 17 00:00:00 2001
+From: Mohamed Maatallah <hotelsmaatallahrecemail@gmail.com>
+Date: Sat, 24 May 2025 03:16:09 +0100
+Subject: [PATCH] Update setpwnam.c
+
+CVE: CVE-2025-14104
+Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/aaa9e718c88d6916b003da7ebcfe38a3c88df8e6]
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ login-utils/setpwnam.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/login-utils/setpwnam.c b/login-utils/setpwnam.c
+index 3e3c1abde..95e470b5a 100644
+--- a/login-utils/setpwnam.c
++++ b/login-utils/setpwnam.c
+@@ -126,10 +126,12 @@ int setpwnam(struct passwd *pwd, const char *prefix)
+               }
+               /* Is this the username we were sent to change? */
+-              if (!found && linebuf[namelen] == ':' &&
+-                  !strncmp(linebuf, pwd->pw_name, namelen)) {
+-                      /* Yes! So go forth in the name of the Lord and
+-                       * change it!  */
++              if (!found &&
++                  strncmp(linebuf, pwd->pw_name, namelen) == 0 &&
++                  strlen(linebuf) > namelen &&
++                  linebuf[namelen] == ':') {
++                      /* Yes! But this time let’s not walk past the end of the buffer
++                       * in the name of the Lord, SUID, or anything else. */
+                       if (putpwent(pwd, fp) < 0)
+                               goto fail;
+                       found = 1;
diff --git a/meta/recipes-core/util-linux/util-linux/CVE-2025-14104-02.patch b/meta/recipes-core/util-linux/util-linux/CVE-2025-14104-02.patch
new file mode 100644 (file)
index 0000000..9d21db2
--- /dev/null
@@ -0,0 +1,28 @@
+From 9a36d77012c4c771f8d51eba46b6e62c29bf572a Mon Sep 17 00:00:00 2001
+From: Mohamed Maatallah <hotelsmaatallahrecemail@gmail.com>
+Date: Mon, 26 May 2025 10:06:02 +0100
+Subject: [PATCH] Update bufflen
+
+Update buflen
+
+CVE: CVE-2025-14104
+Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/9a36d77012c4c771f8d51eba46b6e62c29bf572a]
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ login-utils/setpwnam.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/login-utils/setpwnam.c b/login-utils/setpwnam.c
+index 95e470b5a..7778e98f7 100644
+--- a/login-utils/setpwnam.c
++++ b/login-utils/setpwnam.c
+@@ -99,7 +99,8 @@ int setpwnam(struct passwd *pwd, const char *prefix)
+               goto fail;
+       namelen = strlen(pwd->pw_name);
+-
++      if (namelen > buflen)
++              buflen += namelen;
+       linebuf = malloc(buflen);
+       if (!linebuf)
+               goto fail;