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 <imagin8r@protonmail.com>
Approved by:	gnome (maintainer timeout)
MFH:		2020Q3
Security:	456375e1-cd09-11ea-9172-4c72b94353b5
Sponsored by:	Netzkommune GmbH
This commit is contained in:
Jochen Neumeister 2020-07-23 18:34:50 +00:00
parent cd1da86072
commit 1c23198fba
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=542951
2 changed files with 17 additions and 1 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= pango
PORTVERSION= 1.42.4
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= x11-toolkits
MASTER_SITES= GNOME
DIST_SUBDIR= gnome2

View File

@ -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))