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

Security Issue Involving the Solaris sadmind(1M) Daemon



Category
Security

Release Phase
Resolved

Product
Solaris 9 Operating System
Solaris 7 Operating System
Solaris 8 Operating System

Bug Id
4079984

Date of Resolved Release
15-SEP-2003

Impact

A local or remote unprivileged user may be able to execute arbitrary commands with the permissions of the sadmind(1M) daemon on Solaris systems which have sadmind(1M) enabled in inetd.conf(4). The sadmind(1M) daemon normally runs with "root" (uid 0) privileges. If the sadmind(1M) daemon is utilizing the default security level authentication mechanism of AUTH_SYS (see secure_rpc(3NSL)), users may be able to forge AUTH_SYS credentials as described in the sadmind(1M) man page.

An exploit has been discovered in the wild and this Sun Alert is to raise awareness of the default sadmind(1M) configuration on Solaris systems.

Sun acknowledges, with thanks, iDefense for working with us on this issue.


Contributing Factors

This issue can occur in the following releases:

SPARC Platform

  • Solaris 7 without patch 116456-01
  • Trusted Solaris 7
  • Solaris 8 without patch 116455-01
  • Trusted Solaris 8 04/01 and 12/02
  • Solaris 9 without patch 116453-01

x86 Platform

  • Solaris 7 without patch 116457-02
  • Trusted Solaris 7
  • Solaris 8 without patch 116442-01
  • Trusted Solaris 8 04/01 and 12/02
  • Solaris 9 without patch 116454-01

Sites which have sadmind(1M) enabled in inetd.conf(4) with strong authentication (-S 2) are not affected by this issue.

To determine if sadmind(1M) is enabled on the system, the following command can be run:

    $ grep sadmind /etc/inet/inetd.conf
100232/10  tli  rpc/udp wait root /usr/sbin/sadmind  sadmind

This shows the sadmind(1M) daemon enabled with the default security level authentication mechanism.

Note: Previous releases of Solaris and Trusted Solaris which shipped with sadmind(1M) included the same default sadmind(1M) entry in the inetd.conf(4) file.



Symptoms

If the described issue occurs, the sadmind(1M) entry in the inetd.conf(4) will be enabled (not commented out) and will not be configured to use strong (AUTH_DES -- see secure_rpc(3NSL)) authentication.

The following example shows a system which is utilizing weak (AUTH_SYS) authentication and is affected by this issue:

    $ grep sadmind /etc/inet/inetd.conf
100232/10   tli   rpc/udp wait root /usr/sbin/sadmind  sadmind

The following example shows a system which is utilizing strong (AUTH_DES) authentication and is not affected by this issue:

    $ grep sadmind /etc/inet/inetd.conf
100232/10   tli   rpc/udp wait root /usr/sbin/sadmind   sadmind -S 2

The following example shows a system which is not utilizing sadmind(1M) as the sadmind entry has been commented out from the inetd.conf(4) file and is not affected by this issue:

    $ grep sadmind /etc/inet/inetd.conf
#100232/10   tli  rpc/udp wait root /usr/sbin/sadmind     sadmind

Workaround

To workaround this issue, either disable the sadmind(1M) on the systems or enable strong (AUTH_DES) authentication by adding "-S 2" to the sadmind(1M) entry of the inetd.conf(4) file.

To disable sadmind(1M) on a Solaris system, do the following:

1. Edit the "/etc/inetd.conf" file and comment out the following line by adding the "#" symbol to the beginning of the line as follows:

    #100232/10   tli   rpc/udp wait root /usr/sbin/sadmind    sadmind

2. Tell the inetd(1M) process to reread the newly modified "/etc/inetd.conf" file by sending it a hangup signal, SIGHUP:

    # /usr/bin/pkill -HUP inetd

To enable strong (AUTH_DES) authentication for sadmind(1M) on a Solaris system, do the following:

1. Edit the "/etc/inetd.conf" file and append "-S 2" to the end of the sadmind line as follows:

    100232/10   tli   rpc/udp wait root /usr/sbin/sadmind    sadmind -S 2

2. Tell the inetd(1M) process to reread the newly modified "/etc/inetd.conf" file by sending it a hangup signal, SIGHUP:

    # /usr/bin/pkill -HUP inetd

Resolution

This issue is addressed in the following releases:

SPARC Platform

  • Solaris 7 with patch 116456-01 or later
  • Solaris 8 with patch 116455-01 or later
  • Trusted Solaris 8 07/03
  • Solaris 9 with patch 116453-01 or later

x86 Platform

  • Solaris 7 with patch 116457-02 or later
  • Solaris 8 with patch 116442-01 or later
  • Trusted Solaris 8 07/03
  • Solaris 9 with patch 116454-01 or later

Note: For Trusted Solaris, the full resolution is to disable sadmind. Use the same method as the Solaris workaround above.



Modification History
Date: 17-MAR-2004
  • Updated Contributing Factors and Resolution sections

Date: 18-MAR-2004
  • Updated Contributing Factors and Resolution sections

Date: 06-APR-2004
  • Updated Contributing Factors and Resolution sections


References

116456-01
116457-02
116455-01
116442-01
116453-01
116454-01




Attachments
This solution has no attachment