A Security Vulnerability in the NFS Version 4 Client Within Solaris May Lead to a System Panic



Category :Security
Release Phase :Resolved
Bug Id :6300710  
Product :Solaris 10 Operating System
OpenSolaris  
Date of Resolved Release :05-Jan-2009 

A Security Vulnerability in the NFS Version 4 Client Within Solaris May Lead to a System Panic


1. Impact

A security vulnerability in the NFS version 4 client within Solaris may allow a local unprivileged user to panic the system.  This is a type of Denial of Service (DoS).

2. Contributing Factors

This issue can occur in the following releases:

SPARC Platform:
  • Solaris 10 without patch 139466-02
  • OpenSolaris based upon builds snv_01 through snv_101
x86 Platform:
  • Solaris 10 without patch 139467-02
  • OpenSolaris based upon builds snv_01 through snv_101
Notes:

1. Solaris 8 and 9 are not impacted by this issue.

2. OpenSolaris distributions may include additional bug fixes above and beyond the build from which it was derived. The base build can be derived as follows:
$ uname -v
snv_86
3. Systems are only impacted by this vulnerability if they are using NFS version 4 (NFSv4) to access remote filesystems. To determine if a system is using NFSv4, the following nfsstat(1M) command can be used:
$ nfsstat -m
/mnt from kadumane:/space/data
Flags:  vers=4,proto=tcp,sec=sys,hard,intr,link,symlink,acl,rsize=1048576, wsize=1048576,retrans=5,timeo=600
Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
The "vers=4" value in the above Flags output indicates use of NFSv4.

Note that systems not using NFSv4 mount points may do so in the future, and all systems should be secured against this threat.

3. Symptoms

Should the described issue occur, the system will panic with a stack trace similar to the following:
vpanic(....)
mutex_vector_enter+0x31c(....)
fn_move+0x8c(3003a399e58, 3003a399e58, ...)
nfs4rename_persistent_fh+0x4f8()
nfs4rename+0x4ac()
nfs4_rename+0x58()
fop_rename+0x1c()
vn_renameat+0x20c()
rename+0xc()
syscall_trap32+0xcc()
Most of the panics due to this issue show this trace and 1st and 2nd argument to fn_move() will be the same. 

4. Workaround

To work around this issue, use NFSv3 on the NFS client by setting NFS_CLIENT_VERSMAX to 3 in /etc/default/nfs, and remounting the existing NFSv4 filesystems.

An example of the entry in /etc/default/nfs:
NFS_CLIENT_VERSMAX=3
To locate which NFSv4 mountpoints qualify for unmounting, the nfsstat(1M) command can be run, as in the following example:
# nfsstat -m
/mnt from testhost:/space/data
Flags:  vers=4,proto=tcp,sec=sys,hard,intr,link,symlink,acl,rsize=1048576,
wsize=1048576,retrans=5,timeo=600
Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
The vers=4 value in the above output indicates a NFsv4 filesystem.

To unmount the NFSv4 mountpoint, the following command can be used:
# umount /mnt
Note: If the umount command shown above does not succeed, the filesystem may be busy and a forced unmount may be necessary.  A list of processes using the filesystem can be determined with the fuser(1M) command:
# fuser -c <mountpoint>
These processes should be terminated prior to retrying the umount command.

Alternatively, the mountpoint can be forcibly unmounted.  Note that this may result in application errors and/or potential data inconsistency, so this should be used with caution.

To forcibly unmount the NFSv4 mountpoint:
# umount -f <mountpoint>
To remount the filesystem:
#  mount -Fnfs testhost:/space/data /mnt
To confirm that the filesystem has been properly remounted as a NFSv3 filesystem, use nfsstat(1M) and confirm that vers=3:
# nfsstat -m
/mnt from testhost:/space/data
Flags: vers=3,proto=tcp,sec=sys,hard,intr,link,symlink,
acl,rsize=32768,wsize=32768,retrans=5,timeo=600
Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60

5. Resolution

This issue is addressed in the following releases:

SPARC Platform:
  • Solaris 10 with patch 139466-02 or later
  • OpenSolaris based on builds snv_102 or later
x86 Platform:
  • Solaris 10 with patch 139467-02 or later
  • OpenSolaris based on builds snv_102 or later
For more information on Security Sun Alerts, see Technical Instruction ID 213557.

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





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 : 248566
Article Type : Sun Alert
Last reviewed : 2009-01-05
Audience : PUBLIC
Keywords :
Provide feedback  (help)
Page Tools
»  Print This Page
»  Email This Article
»  Bookmark This Article