cursor: Fix heap overflows when parsing malicious files
https://bugzilla.redhat.com/show_bug.cgi?id=1522638
This commit is contained in:
parent
a80cb1c29b
commit
495334024e
@ -0,0 +1,52 @@
|
|||||||
|
From 5d201df72f3d4f4cb8b8f75f980169b03507da38 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||||
|
Date: Tue, 28 Nov 2017 21:38:07 +0100
|
||||||
|
Subject: [PATCH] cursor: Fix heap overflows when parsing malicious files.
|
||||||
|
|
||||||
|
It is possible to trigger heap overflows due to an integer overflow
|
||||||
|
while parsing images.
|
||||||
|
|
||||||
|
The integer overflow occurs because the chosen limit 0x10000 for
|
||||||
|
dimensions is too large for 32 bit systems, because each pixel takes
|
||||||
|
4 bytes. Properly chosen values allow an overflow which in turn will
|
||||||
|
lead to less allocated memory than needed for subsequent reads.
|
||||||
|
|
||||||
|
See also: https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/?id=4794b5dd34688158fb51a2943032569d3780c4b8
|
||||||
|
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=103961
|
||||||
|
|
||||||
|
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||||
|
[Pekka: add link to the corresponding libXcursor commit]
|
||||||
|
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
|
||||||
|
---
|
||||||
|
cursor/xcursor.c | 8 +++++++-
|
||||||
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cursor/xcursor.c b/cursor/xcursor.c
|
||||||
|
index ca41c4ac611f..689c7026729d 100644
|
||||||
|
--- a/cursor/xcursor.c
|
||||||
|
+++ b/cursor/xcursor.c
|
||||||
|
@@ -202,6 +202,11 @@ XcursorImageCreate (int width, int height)
|
||||||
|
{
|
||||||
|
XcursorImage *image;
|
||||||
|
|
||||||
|
+ if (width < 0 || height < 0)
|
||||||
|
+ return NULL;
|
||||||
|
+ if (width > XCURSOR_IMAGE_MAX_SIZE || height > XCURSOR_IMAGE_MAX_SIZE)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
image = malloc (sizeof (XcursorImage) +
|
||||||
|
width * height * sizeof (XcursorPixel));
|
||||||
|
if (!image)
|
||||||
|
@@ -482,7 +487,8 @@ _XcursorReadImage (XcursorFile *file,
|
||||||
|
if (!_XcursorReadUInt (file, &head.delay))
|
||||||
|
return NULL;
|
||||||
|
/* sanity check data */
|
||||||
|
- if (head.width >= 0x10000 || head.height > 0x10000)
|
||||||
|
+ if (head.width > XCURSOR_IMAGE_MAX_SIZE ||
|
||||||
|
+ head.height > XCURSOR_IMAGE_MAX_SIZE)
|
||||||
|
return NULL;
|
||||||
|
if (head.width == 0 || head.height == 0)
|
||||||
|
return NULL;
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
11
wayland.spec
11
wayland.spec
@ -1,12 +1,16 @@
|
|||||||
Name: wayland
|
Name: wayland
|
||||||
Version: 1.14.0
|
Version: 1.14.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Wayland Compositor Infrastructure
|
Summary: Wayland Compositor Infrastructure
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://wayland.freedesktop.org/
|
URL: http://wayland.freedesktop.org/
|
||||||
Source0: http://wayland.freedesktop.org/releases/%{name}-%{version}.tar.xz
|
Source0: http://wayland.freedesktop.org/releases/%{name}-%{version}.tar.xz
|
||||||
|
|
||||||
|
# https://lists.freedesktop.org/archives/wayland-devel/2017-November/035979.html
|
||||||
|
# Backported from upstream
|
||||||
|
Patch0: 0001-cursor-Fix-heap-overflows-when-parsing-malicious-fil.patch
|
||||||
|
|
||||||
BuildRequires: chrpath
|
BuildRequires: chrpath
|
||||||
BuildRequires: docbook-style-xsl
|
BuildRequires: docbook-style-xsl
|
||||||
BuildRequires: doxygen
|
BuildRequires: doxygen
|
||||||
@ -66,7 +70,7 @@ Wayland server library
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%autosetup -p1
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -127,6 +131,9 @@ XDG_RUNTIME_DIR=$PWD/tests/run make check || \
|
|||||||
%{_libdir}/libwayland-server.so.0*
|
%{_libdir}/libwayland-server.so.0*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Dec 12 2017 Kalev Lember <klember@redhat.com> - 1.14.0-2
|
||||||
|
- cursor: Fix heap overflows when parsing malicious files (#1522638)
|
||||||
|
|
||||||
* Wed Aug 09 2017 Kalev Lember <klember@redhat.com> - 1.14.0-1
|
* Wed Aug 09 2017 Kalev Lember <klember@redhat.com> - 1.14.0-1
|
||||||
- Update to 1.14.0
|
- Update to 1.14.0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user