AUSCERT External Security Bulletin Redistribution

                 ESB-97.070 -- Sun Security Bulletin #00141
		        Vulnerability in getopt(3)
                               5 June 1997


Sun Microsystems, Inc. has released the following advisory concerning a
vulnerability in getopt.  This vulnerability may allow local users to gain
root access.

The following security bulletin is provided as a service to AUSCERT's
members.  As AUSCERT did not write this document, AUSCERT has had no
control over its content.  As such, the decision to use any or all of this
information is the responsibility of each user or organisation, and should
be done so in accordance with site policies and procedures.

Contact information for Sun Microsystems, Inc. is included in the Security
Bulletin below.  If you have any questions or need further information,
please contact them directly.

Previous advisories and external security bulletins can be retrieved from:


If you believe that your system has been compromised, contact AUSCERT or your
representative in FIRST (Forum of Incident Response and Security Teams).

Internet Email: auscert@auscert.org.au
Facsimile:      (07) 3365 4477
Telephone:      (07) 3365 4417 (International: +61 7 3365 4417)
	AUSCERT personnel answer during Queensland business hours
	which are GMT+10:00 (AEST).
	On call after hours for emergencies.

- --------------------------BEGIN INCLUDED TEXT--------------------

- ------------------------------------------------------------------------------
 		   Sun Microsystems, Inc. Security Bulletin
Bulletin Number:	#00141
Date: 			4 June 1997
Title:			Vulnerability in getopt(3)

- ------------------------------------------------------------------------------
Permission is granted for the redistribution of this Bulletin, so long as 
the Bulletin is not edited and is attributed to Sun Microsystems. Portions 
may also be excerpted for re-use in other security advisories so long as 
proper attribution is included.

Any other use of this information without the express written consent of 
Sun Microsystems is prohibited. Sun Microsystems expressly disclaims all 
liability for any misuse of this information by any third party.
- ------------------------------------------------------------------------------

1.  Bulletins Topics

    Sun announces the release of patches for Solaris 2.5.1, 2.5, and 2.4 
    (SunOS 5.5.1, 5.5, and 5.4) that relate to a vulnerability with the 
    getopt(3) function in the libc library. Any privileged program (setuid 
    or setgid) that uses getopt(3) may exploit the vulnerability to gain root 
    Sun estimates the release of patches for Solaris 2.4_x86 and 2.3 (SunOS 
    5.4_x86 and 5.3) that relate to the same vulnerability will be available 
    within 1 week and 3 weeks respectively of the date of this bulletin. 
    Sun strongly recommends that you:
    a. install the patches listed in section 5 immediately on every system 
       running SunOS 5.5.1, 5.5.1_x86, 5.5, 5.5_x86, or 5.4
    b. apply the workarounds specified in section 4 immediately on every system 
       running SunOS 5.4_x86 or 5.3.
2.  Who is Affected
       Vulnerable:	SunOS versions 5.5.1, 5.5.1_x86, 5.5, 5.5_x86, 
                                       5.4, 5.4_x86, and 5.3.
       Not vulnerable:	All other supported versions of SunOS
       This vulnerability is fixed in the upcoming release of Solaris.
3.  Understanding the Vulnerability

    The getopt(3) function parses options from a program's command list.
    Due to insufficient bounds checking by getopt(3) while processing command 
    line arguments, it is possible to overwrite the internal stack space of 
    programs that use getopt(3). This may allow users to cause programs using 
    getopt(3) to execute arbitrary commands by supplying carefully crafted 
    arguments to these programs. If these programs are setuid or setgid, then 
    these commands may be run with those privileges. 

    Any dynamically or statically linked setuid or setgid program that uses 
    getopt(3) may be vulnerable.
4.  Workarounds

4.1 Dynamically linked programs

    The vulnerability can be exploited by using getopt(3) to print error 
    messages when an invalid option is discovered. These messages can be 
    suppressed by setting "opterr" (a global libc variable) to zero by doing 
    the following:

    As root, execute the following command:

      # adb -w /lib/libc.so.1
    Type the following:
    The system will respond with:
      opterr:         0x1             =       0x0

    Type Control-D to exit adb.

    Note that this workaround will suppress getopt(3) error messages from 
    all dynamically linked executables.

4.2 Statically linked programs

    The workaround in 4.1 cannot be applied to statically linked setuid or
    setgid programs. Other than /usr/sbin/static/rcp, Sun is not aware of any 
    other statically linked executable that uses getopt(3). The vulnerability
    in the rcp program can be closed by removing the setuid bit with a command
    such as the following:
       chmod 555 /usr/sbin/static/rcp
    The rcp program is typically run as root during system boot or recovery

5.  The vulnerability relating to getopt(3) is fixed by the following patches:

	OS version		Patch ID
	----------		--------
	SunOS 5.5.1		103612-23
	SunOS 5.5.1_x86         103613-23
     	SunOS 5.5		103187-25
     	SunOS 5.5_x86           103188-25
     	SunOS 5.4               101945-49	
	SunOS 5.4_x86           101946-43	(to be released in 1 week)
     	SunOS 5.3               101318-87	(to be released in 3 weeks)

6.  Checksum Table

    The checksum table below shows the BSD checksums (SunOS 5.x: /usr/ucb/sum),
    SVR4 checksums (SunOS 5.x: /usr/bin/sum), and the MD5 digital signatures 
    for the above-mentioned patches that are available from:
    These checksums may not apply if you obtain patches from your answer

File Name	  BSD	       SVR4	    MD5
- ---------------   ---------    ---------    --------------------------------
103612-23.tar.Z   58756 3133   30630 6266   80BFC84479DAED881141250D924C6B1A
103613-23.tar.Z   25868 2829   1295 5657    5AE2770752A17D853029B539EF94B783
103187-25.tar.Z   64511 3195   17448 6389   36120E6EB91C100EB302CE2FEE96739A
103188-25.tar.Z   07195 2880   23176 5760   6707EAB1BD10B845F535E131836F8DC5
101945-49.tar.Z   25995 10899  19660 21798  D67A5744C87BAD1A31D87AED6DC3C362

- ------------------------------------------------------------------------------
Sun acknowledges with thanks AUSCERT, CERT/CC, and DFNCERT for their assistance 
in the preparation of this bulletin.

Sun, AUSCERT, CERT/CC, and DFNCERT are members of FIRST, the Forum of Incident 
Response and Security Teams. For more information about FIRST, visit the FIRST 
web site at "http://www.first.org/".
- ------------------------------------------------------------------------------


A.  Patches listed in this bulletin are available to all Sun customers via 
    World Wide Web at:
    Customers with Sun support contracts can also obtain patches from local 
    Sun answer centers and SunSITEs worldwide.
B.  To report or inquire about a security problem with Sun software, contact 
    one or more of the following:
        - Your local Sun answer centers
        - Your representative computer security response team, such as CERT 
        - Sun Security Coordination Team. Send email to:
C.  To receive information or subscribe to our CWS (Customer Warning System) 
    mailing list, send email to:
    with a subject line (not body) containing one of the following commands:

        Command         Information Returned/Action Taken
        -------         ---------------------------------

        HELP            An explanation of how to get information

        LIST            A list of current security topics

        QUERY [topic]   The mail containing the question is relayed to
                        the Security Coordination Team for response.

        REPORT [topic]  The mail containing the text is treated as a
                        security report and forwarded to the Security
                        Coordination Team. We do not recommend that detailed 
                        problem descriptions be sent in plain text.

        SEND topic      A short status summary or bulletin. For example, to 
        		retrieve a Security Bulletin #00138, supply the 
        		following in the subject line (not body):
        			SEND #138

        SUBSCRIBE       Sender is added to our mailing list.  To subscribe, 
                        supply the following in the subject line (not body):

                            	SUBSCRIBE cws your-email-address
			Note that your-email-address should be substituted
			by your email address.
        UNSUBSCRIBE     Sender is removed from our mailing list.
- ------------------------------------------------------------------------------

- --------------------------END INCLUDED TEXT--------------------

Version: 2.6.3i
Charset: noconv
Comment: ftp://ftp.auscert.org.au/pub/auscert/AUSCERT_PGP.key