Privacy and Legal Notice
TECHNICAL BULLETIN
T-244: Solaris IP(7P) Module and STREAMS Framework Denial of Service Vulnerabilities
October 2, 2009 15:00 GMT
|
| PROBLEM: |
Security Vulnerabilities in Solaris IP(7P) Module and STREAMS Framework May Lead to a Denial of Service (DoS) Condition.
|
| PLATFORM: |
Solaris 8 Operating System
Solaris 9 Operating System
Solaris 10 Operating System
OpenSolaris
|
| ABSTRACT: |
Solaris IP(7P) module and STREAMS Framework may allow an unprivileged
local user to leak kernel memory, eventually causing the system to
hang. |
|
| IMPACT ASSESSMENT: |
This
risk is low. A local user can trigger memory leaks in the Solaris
IP(7P) module and STREAMS Framework to cause the target system to hang. |
|
Discussion:
Security vulnerabilities in the Solaris IP(7P) module and STREAMS Framework may allow an unprivileged local user to leak kernel memory, eventually causing the system to hang. This is a type of Denial of Service (DoS).
Vulnerable:
SPARC Platform
* Solaris 8
* Solaris 9 without patch 122300-44
* Solaris 10 without patch 141414-09
* OpenSolaris based upon builds snv_01 though snv_108
x86 Platform
* Solaris 8
* Solaris 9 without patch 122301-44
* Solaris 10 without patch 141415-09
* OpenSolaris based upon builds snv_01 though snv_108
Symptoms:
1. If the described issue occurs, the following messages may be displayed on the system console or in the '/var/adm/messages' file:
sshd: [ID auth.error] error: fork: Error 0
WARNING: /etc/svc/volatile: File system full, swap space limit exceeded
WARNING: Sorry, no swap space to grow stack for pid
inetd: [ID daemon.error] Unable to fork inetd_start method of instance
svc:/network/vnetd/tcp:default: Not enough space
Cannot map /lib/ld.so.1
2. A forced coredump generated from unresponsive systems which have the 'kmem_flags' variable set to 0xf in the '/etc/system' file (see system(4) for modifying this file) may show memory leaks in one of the streams_dblk_* memory caches, and also in the streams_mblk cache, with one of the following stacks:
kmem_cache_alloc+0x18c
allocb+0x94
allocb_cred+8
strmakedata+0xa0
strput+0x23c
strwrite_common+0x284
fop_write+0x20
write+0x268
kmem_cache_alloc+0x88
dblk_constructor+0x54
kmem_cache_alloc_debug+0x388
kmem_cache_alloc+0x88
allocb+0x4c
allocb_tryhard+0x1c
putnextctl1+0x30
ldterm_dosig+0x16c
ldtermrput+0x508
putnext+0x3f4
qdrain_syncq+0x368
drain_syncq+0x618
taskq_d_thread+0xbc
The following command can be run as "root" user to find memory leaks in the coredump files:
# echo ::findleaks -dv | /usr/bin/mdb -k unix.# vmcore.# > findleak.txt
(Where # is the current core dump number). Open findleak.txt to confirm the above stack trace.
Solution:
These issues are addressed in the following releases:
SPARC Platform
* Solaris 9 with patch 122300-44 or later
* Solaris 10 with patch 141414-09 or later
* OpenSolaris based upon builds snv_109 or later
x86 Platform
* Solaris 9 with patch 122301-44 or later
* Solaris 10 with patch 141415-09 or later
* OpenSolaris based upon builds snv_109 or later
A final resolution is pending completion for Solaris 8.
DOE-CIRC wishes to acknowledge the contributions of Sun Microsystems for the
information contained in this bulletin.
DOE-CIRC services are available to DOE, DOE Contractors, and the NIH.
DOE-CIRC can be contacted at:
Voice: 866-941-2472
E-mail: doecirc@doecirc.energy.gov
World Wide Web: http://www.doecirc.energy.gov
UCRL-MI-119788