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

Security Vulnerability with the Solaris IPv4 Networking Stack Involving the Cassini Gigabit-Ethernet Device Driver and Jumbo Frames



Category
Security

Release Phase
Resolved

Bug Id
6803523

Product
Solaris 10 Operating System
OpenSolaris

Date of Resolved Release
18-Jun-2009

A security vulnerability with the Solaris IPv4 networking stack involving the Cassini Gigabit-Ethernet Device Driver (ce(7D)) and jumbo frames:

1. Impact

A security vulnerability with the Solaris IPv4 networking stack involving the Cassini Gigabit-Ethernet Device Driver (ce(7D)) and jumbo frames may allow a remote user to panic the system. This is a type of Denial of Service (DoS) condition.

2. Contributing Factors

This issue can occur in the following releases:

SPARC Platform
  • Solaris 10 without patch 141414-01
  • OpenSolaris based upon builds snv_01 through snv_82, and snv_111 through snv_117
x86 Platform
  • Solaris 10 without patch 141415-01
  • OpenSolaris based upon builds snv_01 through snv_82, and snv_111 through snv_117
Note 1: Solaris 8 and Solaris 9 are not impacted by this issue.

Note 2:
A system is only vulnerable to this issue if it is using a GigaSwift Ethernet Adapter (CE) interface (ce(7D)) which has been configured to accept jumbo frames, and hardware checksumming is enabled.

To determine if there are any active CE interfaces present on a system, run the following command:
    # /sbin/ifconfig -a | /bin/grep ^ce
ce0: flags=1001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,FIXEDMTU> mtu 1500 index 2
ce1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9194 index 3
To determine if jumbo frames are in use on a CE interface, use the following ndd commands:
    # ndd -set /dev/ce instance 0
# ndd -get /dev/ce accept_jumbo
1
The above two commands must be repeated for each CE interface present on the system (adjusting the instance number in the first command accordingly).

The file "/kernel/drv/ce.conf" may also include the "accept_jumbo=1" directive, either globally or for a subset of interfaces, but the above ndd commands will give the current state of the running interfaces.

To determine whether hardware checksumming is enabled, run the following command as root:
    # echo "dohwcksum/X" | mdb -k
dohwcksum:
dohwcksum:      1        
A value of "1" indicates that hardware checksumming is enabled (default value). A value of "0" indicates hardware checksumming is disabled.

Note 3:
Some third party storage systems have been seen to generate jumbo ethernet packets which may trigger this issue and cause the Solaris system to panic.

Note 4: The use of the kernel memory debugging facility "kmem_flags" will greatly increase the likelihood of a panic. To determine if "kmem_flags" is set, run the following command as root:
    # echo "kmem_flags/X" | mdb -k
kmem_flags:
kmem_flags:     0            
A value of zero indicates kmem_flags is not set. Any other value indicates one or more of the kmem debugging facilities is active.

Note 5: OpenSolaris distributions may include additional bug fixes above and beyond the build from which it was derived.  To determine the base build of OpenSolaris, the following command can be used:
    $ uname -v
snv_86
3. Symptoms

If the described issue occurs, the system will panic with a BAD TRAP type 31, and the stack trace will be similar to one of the following:
    panic[cpu3]/thread=2a10423dca0: BAD TRAP: type=31 rp=2a10423d360 addr=3002e530000 mmu_fsr=0

ip_ocsum_long+0xe4()
bcksum()
ip_tcp_input+0x448()
ip_input+0xa68()
ip_rput()
putnext+0x218()
ce_intr+0x764c()
pci_intr_wrapper+0xb8()
intr_thread+0x168()
ktl0+0x48()

ip_ocsum_long+0xe4()
bcksum()
ip_tcp_input+0x448()
ip_input+0xa68()
ip_rput()
putnext+0x218()
ce_drain_fifo+0x57e4()
thread_start+0x4()
4. Workaround

There are two possible workarounds for this issue:

1. Disable hardware checksumming by putting the following line in "/etc/system" and rebooting the system:
    set ip:dohwcksum = 0
2. Prevent the network from sending jumbo frames to this host by disabling jumbo frames on the entire subnet.

Note: These workarounds may impact system performance.

5. Resolution

This issue is addressed in the following releases:

SPARC Platform
  • Solaris 10 with patch 141414-01 or later
  • OpenSolaris based upon builds snv_118 or later
x86 Platform
  • Solaris 10 with patch 141415-01 or later
  • OpenSolaris based upon builds snv_118 or later

Note: This has also been a issue for systems using IPv6. That is covered in Sun Alert 265608 :

http://sunsolve.sun.com/search/document.do?assetkey=1-66- 265608-1


For more information on Security Sun Alerts, see 1009886.1.

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-2009 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved.


Modification History
02-Sep-2009: Added Note to Resolution section.


References

141414-01
141415-01





Attachments
This solution has no attachment