glib-2.0: patch CVE-2026-1484

Pick patches from [1] linked from [2].

[1] https://gitlab.gnome.org/GNOME/glib/-/issues/3870
[2] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4979

(From OE-Core rev: 67bc85229209e0405587c6747d9a98576d59e094)

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>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Marko
2026-02-20 17:21:30 +01:00
committed by Richard Purdie
parent ac842282aa
commit fd826a83c7
3 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
From 5ba0ed9ab2c28294713bdc56a8744ff0a446b59c Mon Sep 17 00:00:00 2001
From: Marco Trevisan <mail@3v1n0.net>
Date: Fri, 23 Jan 2026 18:48:30 +0100
Subject: [PATCH] gbase64: Use gsize to prevent potential overflow
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both g_base64_encode_step() and g_base64_encode_close() return gsize
values, but these are summed to an int value.
If the sum of these returned values is bigger than MAXINT, we overflow
while doing the null byte write.
Spotted by treeplus.
Thanks to the Sovereign Tech Resilience programme from the Sovereign
Tech Agency.
ID: #YWH-PGM9867-168
Closes: #3870
(cherry picked from commit 6845f7776982849a2be1d8c9b0495e389092bff2)
Co-authored-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
CVE: CVE-2026-1484
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/5ba0ed9ab2c28294713bdc56a8744ff0a446b59c]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
glib/gbase64.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/glib/gbase64.c b/glib/gbase64.c
index 2ea4a4ef4..214b48911 100644
--- a/glib/gbase64.c
+++ b/glib/gbase64.c
@@ -264,8 +264,9 @@ g_base64_encode (const guchar *data,
gsize len)
{
gchar *out;
- gint state = 0, outlen;
+ gint state = 0;
gint save = 0;
+ gsize outlen;
g_return_val_if_fail (data != NULL || len == 0, NULL);

View File

@@ -0,0 +1,45 @@
From 25429bd0b22222d6986d000d62b44eebf490837d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Wed, 21 Jan 2026 20:09:44 +0100
Subject: [PATCH] gbase64: Ensure that the out value is within allocated size
We do not want to deference or write to it
Related to: #3870
CVE: CVE-2026-1484
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/25429bd0b22222d6986d000d62b44eebf490837d]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
glib/gbase64.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/glib/gbase64.c b/glib/gbase64.c
index 214b48911..0141b3b07 100644
--- a/glib/gbase64.c
+++ b/glib/gbase64.c
@@ -267,6 +267,7 @@ g_base64_encode (const guchar *data,
gint state = 0;
gint save = 0;
gsize outlen;
+ gsize allocsize;
g_return_val_if_fail (data != NULL || len == 0, NULL);
@@ -274,10 +275,15 @@ g_base64_encode (const guchar *data,
+1 is needed for trailing \0, also check for unlikely integer overflow */
g_return_val_if_fail (len < ((G_MAXSIZE - 1) / 4 - 1) * 3, NULL);
- out = g_malloc ((len / 3 + 1) * 4 + 1);
+ allocsize = (len / 3 + 1) * 4 + 1;
+ out = g_malloc (allocsize);
outlen = g_base64_encode_step (data, len, FALSE, out, &state, &save);
+ g_assert (outlen <= allocsize);
+
outlen += g_base64_encode_close (FALSE, out + outlen, &state, &save);
+ g_assert (outlen <= allocsize);
+
out[outlen] = '\0';
return (gchar *) out;

View File

@@ -40,6 +40,8 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://CVE-2025-14087-03.patch \
file://CVE-2025-14512.patch \
file://CVE-2026-0988.patch \
file://CVE-2026-1484-01.patch \
file://CVE-2026-1484-02.patch \
"
SRC_URI:append:class-native = " file://relocate-modules.patch \
file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \