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

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


References

139466-02
139467-02





Attachments
This solution has no attachment