The X Window System (or X11) is a graphical windowing system used on Unix-like systems. It is based on a client/server model. The X Window System font server (xfs) is used to render fonts for the X server. More information can be found at the following URLs.
Remote exploitation of a multiple vulnerabilities in X.Org Foundation's X Font Server, as included in various vendors' operating system distributions, could allow an attacker to execute arbitrary code.
An integer overflow vulnerability exists within the handlers for the QueryXBitmaps and QueryXExtents protocol requests. Both requests result in a call to the build_range() function. This function takes a 32bit integer from the request, and uses it in an arithmetic operation that calculates the size of a dynamic buffer. This calculation can overflow, which leads to an improperly sized memory allocation. This results in a heap overflow.
Additionally, a heap corruption vulnerability exists within the handlers for the QueryXBitmaps and QueryXExtents protocol requests. Both requests result in a call to the swap_char2b() function. This function takes a 32bit integer from the request, and uses it as the number of bytes to swap in the request buffer. This allows an attacker to swap an arbitrary number of bytes on the heap.
Exploitation of these vulnerabilities could result in the execution of arbitrary code with the privileges of the X Font Server, usually 'xfs'.
On current versions of Solaris, these vulnerabilities are remotely exploitable. The XFS service is turned on by default, and listens on TCP port 7100. On modern Linux systems, these vulnerabilities are only locally exploitable since the server is configured to listen on a UNIX socket only.
iDefense has confirmed the existence of these vulnerabilities in XFS version X11R7.2-1.0.4. Previous versions may also be affected.
On Solaris, stop XFS from listening remotely by disabling it via the service manager.
The X.Org team has addressed these vulnerabilities with the release of XFS version 1.0.5. Additionally, a patch for version 1.0.4 has been made available. For more information, consult the X.Org advisory at the following URL.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2007-4990 to the swap_char2b issue. Additionally, the name CVE-2007-4568 has been assigned to the build_range integer overflow. These are a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.
09/05/2007 Initial vendor notification
09/08/2007 Initial vendor response
10/02/2007 Coordinated public disclosure
These vulnerabilities were discovered by Sean Larsson of VeriSign iDefense Labs.
Get paid for vulnerability research
Free tools, research and upcoming events
Copyright © 2007 Verisign, Inc.
Permission is granted for the redistribution of this alert electronically. It may not be edited in any way without the express written consent of iDefense. If you wish to reprint the whole or any part of this alert in any other medium other than electronically, please e-mail customer service for permission.
Disclaimer: The information in the advisory is believed to be accurate at the time of publishing based on currently available information. Use of the information constitutes acceptance for use in an AS IS condition. There are no warranties with regard to this information. Neither the author nor the publisher accepts any liability for any direct, indirect, or consequential loss or damage arising from use of, or reliance on, this information.