Category
Security
Release Phase
Resolved
Bug Id
6300710
ProductSolaris 10 Operating System
OpenSolaris
Date of Resolved Release05-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
AttachmentsThis solution has no attachment