=====================================================================
                                    CERT-Renater

                         Note d'Information No. 2006/VULN454
_____________________________________________________________________

DATE                      : 22/08/2006

HARDWARE PLATFORM(S)      : /

OPERATING SYSTEM(S)       : Solaris 10.

======================================================================

Sun(sm) Alert Notification
      * Sun Alert ID: 102576
      * Synopsis: On Solaris 10 libnsl(3LIB) or TLI/XTI API Routines May
        Cause Listener Programs for Databases or Other Network Aware
        Applications to Stop Responding
      * Category: Availability
      * Product: Solaris 10 Operating System
      * BugIDs: 6389163
      * Avoidance: Binary
      * State: Workaround
      * Date Released: 16-Aug-2006
      * Date Closed:
      * Date Modified:

1. Impact

    A race condition may cause listener programs for databases or other
    network aware applications to cease to respond if those listeners are
    coded using routines from libnsl(3LIB) or TLI/XTI APIs.

2. Contributing Factors

    This issue can occur in the following releases:

    SPARC Platform
      * Solaris 10 with patch 118833-04 or later

    x86 Platform
      * Solaris 10 with patch 118833-03 or later

    Note: Solaris 8 and 9 are not impacted by this issue.

3. Symptoms

    Listener processes cease to respond to new connection attempts and
    begin to consume excessive CPU cycles.

    Using the truss(1) command on the listener process will find it to be
    executing in a tight loop through pollsys() or poll().

    Because of the fact that the coding of listener processes varies
    considerably, it is difficult to provide a truly representative truss
    output.

    This however is one example:
342:    pollsys(0x0005DE48, 6, 0x00000000, 0x00000000)  = 1
342:    lwp_sigmask(SIG_SETMASK, 0x00002000, 0x00000000) = 0xFFBFFEFF
[0x0000FFFF]
342:    fstat(5, 0xFFBFF8C0)                            = 0
342:    ioctl(5, I_PEEK, 0xFFBFF99C)                    = 1
342:    lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF
[0x0000FFFF]
342:    pollsys(0x0005DE48, 6, 0x00000000, 0x00000000)  = 1
342:    lwp_sigmask(SIG_SETMASK, 0x00002000, 0x00000000) = 0xFFBFFEFF
[0x0000FFFF]
342:    fstat(5, 0xFFBFF8C0)                            = 0
342:    ioctl(5, I_PEEK, 0xFFBFF99C)                    = 1
342:    lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF
[0x0000FFFF]

    If the listener uses t_look(3NSL) it can be seen that a T_DATA message
    is present on the listener Stream, instead of the expected T_LISTEN
    messages, (T_DATA is defined as 0x4 in /usr/include/sys/tiuser.h)

    Truss of a listener which uses t_look() experiencing this issue would
    show something similar to this:
    libnsl:t_look() = 4

    This results when a data message intended for an accepting endpoint is
    misdirected during the accept() processing, to the listener endpoint.

4. Relief/Workaround

    Binary relief is available through normal support channels for the
    following releases:

    SPARC Platform
      * Solaris 10

    x86 Platform
      * Solaris 10

    The following workaround should be used until the above can be
    implemented.

    Disable TCP fusion by adding the following line to the "/etc/system"
    file:
    set ip:do_tcp_fusion = 0x0

    Add a comment referencing this Sun Alert and undo the above change
    before applying binaries or final resolution. Reboot the system so
    changes to /etc/system can take effect.

5. Resolution

    A final resolution is pending completion.

    This Sun Alert notification is being provided to you on an "AS IS"
    basis. This Sun Alert notification may contain information provided by
    third parties. The issues described in this Sun Alert notification may
    or may not impact your system(s). Sun makes no representations,
    warranties, or guarantees as to the information contained herein. ANY
    AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
    WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
    NON-INFRINGEMENT, ARE HEREBY DISCLAIMED. BY ACCESSING THIS DOCUMENT
    YOU ACKNOWLEDGE THAT SUN SHALL IN NO EVENT BE LIABLE FOR ANY DIRECT,
    INDIRECT, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES THAT ARISE
    OUT OF YOUR USE OR FAILURE TO USE THE INFORMATION CONTAINED HEREIN.
    This Sun Alert notification contains Sun proprietary and confidential
    information. It is being provided to you pursuant to the provisions of
    your agreement to purchase services from Sun, or, if you do not have
    such an agreement, the Sun.com Terms of Use. This Sun Alert
    notification may only be used for the purposes contemplated by these
    agreements.

    Copyright 2000-2006 Sun Microsystems, Inc., 4150 Network Circle, Santa
    Clara, CA 95054 U.S.A. All rights reserved

======================================================================

           =========================================================
           Les serveurs de référence du CERT-Renater
           http://www.urec.fr/securite
           http://www.cru.fr/securite
           http://www.renater.fr
           =========================================================
           + CERT-RENATER          | tel : 01-53-94-20-44          +
           + 151 bd de l'Hopital   | fax : 01-53-94-20-41          +
           + 75013 Paris           | email: certsvp@renater.fr     +
           =========================================================


