From 1c23198fba1224071d6c84c1c8231c7550bdf66c Mon Sep 17 00:00:00 2001 From: Jochen Neumeister Date: Thu, 23 Jul 2020 18:34:50 +0000 Subject: [PATCH] SECURITY UPDATE: Buffer overflow Gnome Pango 1.42 and later is affected by: Buffer Overflow. The impact is: The heap based buffer overflow can be used to get code execution. The component is: function name: pango_log2vis_get_embedding_levels, assignment of nchars and the loop condition. The attack vector is: Bug can be used when application pass invalid utf-8 strings to functions like pango_itemize. PR: 239563 Reported by: Miyashita Touka Approved by: gnome (maintainer timeout) MFH: 2020Q3 Security: 456375e1-cd09-11ea-9172-4c72b94353b5 Sponsored by: Netzkommune GmbH --- x11-toolkits/pango/Makefile | 2 +- x11-toolkits/pango/files/CVE-20191010238 | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 x11-toolkits/pango/files/CVE-20191010238 diff --git a/x11-toolkits/pango/Makefile b/x11-toolkits/pango/Makefile index 68cefb17a66a..59b4cbe023f5 100644 --- a/x11-toolkits/pango/Makefile +++ b/x11-toolkits/pango/Makefile @@ -3,7 +3,7 @@ PORTNAME= pango PORTVERSION= 1.42.4 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= x11-toolkits MASTER_SITES= GNOME DIST_SUBDIR= gnome2 diff --git a/x11-toolkits/pango/files/CVE-20191010238 b/x11-toolkits/pango/files/CVE-20191010238 new file mode 100644 index 000000000000..89d21cd89db1 --- /dev/null +++ b/x11-toolkits/pango/files/CVE-20191010238 @@ -0,0 +1,16 @@ +--- ../pango/pango-bidi-type.c.orig 2020-07-23 19:10:14.338937000 +0200 ++++ ../pango/pango-bidi-type.c 2020-07-23 19:12:15.511836000 +0200 +@@ -179,8 +179,11 @@ pango_log2vis_get_embedding_levels (const gchar *te + for (i = 0, p = text; p < text + length; p = g_utf8_next_char(p), i++) + { + gunichar ch = g_utf8_get_char (p); +- FriBidiCharType char_type; +- char_type = fribidi_get_bidi_type (ch); ++ FriBidiCharType char_type = fribidi_get_bidi_type (ch); ++ ++ if (i == n_chars) ++ break; ++ + bidi_types[i] = char_type; + ored_types |= char_type; + if (FRIBIDI_IS_STRONG (char_type))