A Security Issue With Solaris 10 x64 Systems Using IPv6 Forwarding May Result in a Denial of Service (DoS)



Category :Security
Release Phase :Resolved
Product :Solaris 10 Operating System for x86 Platforms  
Bug Id :6222966  
Date of Resolved Release :25-SEP-2006 


Impact

Solaris 10 x64 systems configured to use Internet Protocol Version 6 (ip6(7P)) may panic when processing certain IPv6 packets. A local or remote unprivileged user may be able to send IPv6 packets that could panic the system causing a Denial of Service (DoS).


Contributing Factors

This issue can occur in the following releases:

x86 Platform

  • Solaris 10 without patch 118855-16

Note: Solaris 8 and Solaris 9, systems are not impacted by this issue. Solaris 10 sparc and Solaris 10 32 bit x86 systems are also not impacted.

To determine if a system is running in 64-bit mode, the following command can be run:

    $ isainfo -b
    64

If "64" is returned, the system is running in 64-bit mode.

This issue only affects Systems that use IPv6 forwarding. To determine if a system is running with IPv6 enabled, the following command can be used:

    $ ifconfig -a6

If entries are returned marked "UP and RUNNING" then the system is utilizing IPv6.


Symptoms

If the described issue occurs, the system will panic with a stack trace similar to the following:

    fffffe80000b36c0 unix:die+da (ffffffff00000000, 184a16e00)
    fffffe80000b37a0 unix:trap+5ea ()
    fffffe80000b37b0 unix:cmntrap+11b ()
    fffffe80000b3980 ip:ip_rput_data_v6+e00 ()
    fffffe80000b39d0 ip:ip_rput_v6+193 ()
    fffffe80000b3a30 unix:putnext+1f1 ()
    fffffe80000b3b50 gld:gld_recv_tagged+21d ()
    fffffe80000b3b60 gld:ri_ste_def+333ebf2b ()

 


Workaround

To work around the described issue, do not configure IPv6 addresses. To disable IPv6 on a system, run the following command as root:

    # ifconfig -a6 down

Edit the "/etc/nsswitch.conf" file and change the "ipnodes" entry to be "files" only. IPv6 will function again after a reboot.

Note: To disable IPv6 on systems across a system reboot, the "/etc/hostname6.<interface>" files can be temporarily renamed.

Alternatively, to workaround the described issue while maintaining IPv6 functionality, boot the system in 32-bit mode.

To specify the 32-bit kernel, as root or with equivalent privileges, enter the following command:

    # eeprom boot-file=kernel/unix

Upon the next reboot, the system will be running the 32-bit kernel.

Once the patch for this issue is installed, to reinstate 64 bit mode, as root or with equivalent privileges, enter the following command:

    # eeprom boot-file=kernel/amd64/unix

Upon the next reboot, the system will be running the 64-bit kernel.


Resolution

This issue is addressed in the following releases:

x86 Platform

  • Solaris 10 with patch 118855-16 or later





Attachments
This solution has no attachment

 
 
Login Required

You must login and have a valid contract to access Sun's Premium content which includes:

  • Sun Alerts
  • Bugs
  • Patches
  • Solutions
  • White Papers
  • Documentation
  • Support Knowledge

Login Required

You must login and have a valid contract to access Sun's contracted features

Access Legend:

(Login to access)   Sun Contracted Content
(Login to access)   Sun Contracted Feature

Please make use of SunSolve Feedback application by selecting the floating [+] to provide feedback about this specific document.

Search

Article Details
Article ID : 201091
Article Type : Sun Alert
Last reviewed : 2006-09-26
Audience : PUBLIC
Keywords :
Provide feedback  (help)
Page Tools
»  Print This Page
»  Email This Article
»  Bookmark This Article
 
Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright Sun Microsystems, Inc. | SunSolve Version 7.4.0 #1