Bug 1189062 (CVE-2015-0255) - CVE-2015-0255 xorg-x11-server: information leak in the XkbSetGeometry request of X servers
Summary: CVE-2015-0255 xorg-x11-server: information leak in the XkbSetGeometry request...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2015-0255
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1190007 1190008 1190009 1190010 1193332
Blocks: 1189063
TreeView+ depends on / blocked
 
Reported: 2015-02-04 11:27 UTC by Vasyl Kaigorodov
Modified: 2023-05-12 07:11 UTC (History)
5 users (show)

Fixed In Version: xorg-x11-server 1.16.4, xorg-x11-server 1.17.1
Doc Type: Bug Fix
Doc Text:
A buffer overflow flaw was found in the way the X.Org server handled XkbGetGeometry requests. A malicious, authorized client could use this flaw to disclose portions of the X.Org server memory, or cause the X.Org server to crash using a specially crafted XkbGetGeometry request.
Clone Of:
Environment:
Last Closed: 2015-04-10 07:44:59 UTC
Embargoed:


Attachments (Terms of Use)
0001-xkb-Check-strings-length-against-request-size.patch (4.63 KB, text/plain)
2015-02-04 11:29 UTC, Vasyl Kaigorodov
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0797 0 normal SHIPPED_LIVE Moderate: xorg-x11-server security update 2015-04-10 07:07:35 UTC

Description Vasyl Kaigorodov 2015-02-04 11:27:45 UTC
Olivier Fourdan from Red Hat has discovered a protocol handling issue in the way the X server code base handles the XkbSetGeometry request.

The issue stems from the server trusting the client to send valid string lengths in the request data. A malicious client with string lengths exceeding the request length can cause the server to copy adjacent memory data into the XKB structs. This data is then available to the client via the XkbGetGeometry request.
The data length is at least up to 64k, it is possible to obtain more data by chaining strings, each string length is then determined by whatever happens to be in that 16-bit region of memory.

A similarly crafted request can likely cause the X server to crash.

This issue has been assigned CVE-2015-0255

Affected Versions:
==================
This bug appears to have been introduced in X11R6.1 (March 1996) and is thus believed to be present in every X server release since, including the current stable release 1.16.3

Fixes:
======
A fix is available via the attached patch which is intended to be included in xorg-server-1.16.4 and 1.17.1

Note that this patch requires another, currently unmerged patch to apply without conflicts:
http://patchwork.freedesktop.org/patch/40575/

Acknowledgement:

This issue was discovered by Olivier Fourdan of Red Hat.

Comment 1 Vasyl Kaigorodov 2015-02-04 11:29:47 UTC
Created attachment 988018 [details]
0001-xkb-Check-strings-length-against-request-size.patch

Comment 3 Arun Babu Neelicattu 2015-02-06 04:39:06 UTC
Statement:

Red Hat Enterprise Linux 5 is now in Production 3 Phase of the support and maintenance life cycle. This has been rated as having Moderate security impact and is not currently planned to be addressed in future updates. For additional information, refer to the Red Hat Enterprise Linux Life Cycle: https://access.redhat.com/support/policy/updates/errata/.

Comment 6 Tomas Hoger 2015-02-17 07:53:45 UTC
Created xorg-x11-server tracking bugs for this issue:

Affects: fedora-all [bug 1193332]

Comment 9 Tim Waugh 2015-03-02 14:53:13 UTC
There is a tigervnc-1.4.3 release also referencing this CVE name:
  https://github.com/TigerVNC/tigervnc/releases/tag/v1.4.3

Comment 10 errata-xmlrpc 2015-04-10 03:07:53 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6
  Red Hat Enterprise Linux 7

Via RHSA-2015:0797 https://rhn.redhat.com/errata/RHSA-2015-0797.html


Note You need to log in before you can comment on or make changes to this bug.