Note: This is an archival copy of Security Sun Alert 228524 as previously published on http://sunsolve.sun.com.
Latest version of this security advisory is available from http://support.oracle.com as Sun Alert 1017426.1.
Article ID : 1017426.1
Article Type : Sun Alerts (SURE)
Last reviewed : 2007-03-08
Audience : PUBLIC
Copyright Notice: Copyright © 2010, Oracle Corporation and/or its affiliates.

Security Vulnerability With Integer Multiplication Within libXfont Affects Solaris X11 Servers



Category
Security

Release Phase
Resolved

Product
Solaris 9 Operating System
Solaris 10 Operating System
Solaris 8 Operating System

Bug Id
6465806, 6465805

Date of Workaround Release
14-NOV-2006

Date of Resolved Release
09-MAR-2007

Impact

The Xsun(1) server and Xorg(1) server are the X display servers for Version 11 of the X window system on Solaris.

There exists an overflow vulnerability when performing integer multiplication within the libXfont library, as used by the X11 display servers, that can cause a heap overflow while loading the fonts. This may allow a local unprivileged user to be able to execute arbitrary commands with elevated privileges or create a Denial of Service (DoS) to the display managers.

This issue is described in the following documents:


Contributing Factors

This issue can occur in the following releases:

SPARC Platform

  • Solaris 8 without patch 119067-04
  • Solaris 9 without patch 112785-57
  • Solaris 10 without patch 119059-19

x86 Platform

  • Solaris 8 without patch 119068-04
  • Solaris 9 without patch 112786-46
  • JDS release 2 (for Solaris 9) without patch 124833-01
  • Solaris 10 without patch 119060-18
  • Solaris 10 with X.Org without patches 119060-18 and 119062-02

Note: Xorg(1) is not shipped in Solaris 8

To determine the version of JDS that is currently installed on the system, run the following command (output will vary by platform):

    % grep platform /usr/share/gnome/gnome-about/gnome-version.xml
    <platform>2</platform>

Alternatively (for the same results), in a terminal window from within the GNOME desktop, the following command can be run:

    % /usr/bin/gnome-about

 


Symptoms

There are no predictable symptoms that would indicate that this issue has been exploited to execute arbitrary commands with elevated privileges. The symptom of the Denial of Service (DoS) would be the absence of either the Xsun(1) or Xorg(1) server running on the system.


Workaround

To prevent this issue from being exploited to execute arbitrary commands with elevated privileges, the setuid(2) bit can be removed from the Xorg server and the Xsun server on the x86 platform and the setgid(2) bit can be removed from the Xsun server on the SPARC platform. For example:

    # chmod 0755 /usr/openwin/bin/Xsun
    # chmod 0755 /usr/X11/bin/Xorg

Note 1: Performing the above procedure will disable the following:

  • The ability to start either the Xsun(1) or Xorg(1) server from the command line for non-root users on the Solaris x86 platform.
  • The ability of Xsun(1) and Xorg(1) to open Unix domain sockets and named pipe transports in the protected "/tmp/.X11-*" directories.
  • The ability to configure Power Management and Interactive Process Priority control on Solaris SPARC.

These features will still be available to Xsun and Xorg when started via a display manager such as dtlogin(1), gdm(1), or xdm(1).

Note 2: There is no workaround to prevent this issue from being exploited to cause a Denial Of Service to the X Servers.

Note 3: The "chmod" command for Xorg(1) is applicable only to Solaris 9 and 10.

Note 4: Local users on the console of a system using an X display manager and Sun Ray users may still be able to exploit this vulnerability to execute arbitrary commands with elevated privileges even if the setuid and setgid permissions have been removed from the Xsun and Xorg binaries.


Resolution

This issue is addressed in the following releases:

SPARC Platform

  • Solaris 8 with patch 119067-04 or later
  • Solaris 9 with patch 112785-57 or later
  • Solaris 10 with patch 119059-19 or later

x86 Platform

  • Solaris 8 with patch 119068-04 or later
  • Solaris 9 with patch 112786-46 or later
  • JDS release 2 (for Solaris 9) with patch 124833-01 or later
  • Solaris 10 with patch 119060-18 or later
  • Solaris 10 with X.Org patches 119060-18 or later and 119062-02 or later


Modification History
Date: 16-NOV-2006
  • Updated Contributing Factors, Relief/Workaround, and Resolution sections

Date: 22-JAN-2007

22-Jan-2007:

  • Updated Contributing Factors and Resolution sections

Date: 09-MAR-2007
  • State: Resolved
  • Updated Contributing Factors and Relief/Workaround sections


References

119059-19
119060-18
112785-57
112786-46
119067-04
119068-04
119062-02
124833-01




Attachments
This solution has no attachment