[v3.0] xorg-server: leak in the XkbSetGeometry request (CVE-2015-0255)
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.
Affected Versions
—————————
This bug appears to have been introduced in X11R6.6 (March 1996) and is
thus believed to be present in every X server release since, including
the current stable release 1.16.3 and 1.17.0.
Fixes
———
A fix is available via the patch linked below which is intended to be
included in xorg-server-1.16.4 and 1.17.1
http://cgit.freedesktop.org/xorg/xserver/commit/?id=20079c36cf7d377938ca5478447d8b9045cb7d43
Note that this patch requires another patch to apply without conflicts:
http://cgit.freedesktop.org/xorg/xserver/commit/?id=81c90dc8f0aae3b65730409b1b615b5fa7280ebd
References
—————-
http://seclists.org/oss-sec/2015/q1/506
http://www.x.org/wiki/Development/Security/Advisory-2015-02-10/
Note: there is a non-consistence in posted on the above links and CVD
Mitre database concerning vulnerable versions:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0255
(from redmine: issue id 4000, created on 2015-03-16, closed on 2015-03-18)
- Relations:
- parent #3997 (closed)
- Changesets:
- Revision 1aafd271 by Natanael Copa on 2015-03-18T09:16:58Z:
main/xorg-server: fix CVE-2015-0255 and upgrade to 1.15.2
fixes #4000