svn commit: r208586 - head/contrib/opie/libopie head/lib/libc/sys
head/sys/nfsclient head/usr.sbin/jail releng/6.4
releng/6.4/contrib/opie/libopie releng/6.4/sys/conf
releng/7.1 releng/7.1/contrib/...
Colin Percival
cperciva at FreeBSD.org
Thu May 27 03:15:05 UTC 2010
Author: cperciva
Date: Thu May 27 03:15:04 2010
New Revision: 208586
URL: http://svn.freebsd.org/changeset/base/208586
Log:
Change the current working directory to be inside the jail created by
the jail(8) command. [10:04]
Fix a one-NUL-byte buffer overflow in libopie. [10:05]
Correctly sanity-check a buffer length in nfs mount. [10:06]
Approved by: so (cperciva)
Approved by: re (kensmith)
Security: FreeBSD-SA-10:04.jail
Security: FreeBSD-SA-10:05.opie
Security: FreeBSD-SA-10:06.nfsclient
Modified:
head/contrib/opie/libopie/readrec.c
head/lib/libc/sys/mount.2
head/sys/nfsclient/nfs_vfsops.c
head/usr.sbin/jail/jail.c
Changes in other areas also in this revision:
Modified:
releng/6.4/UPDATING
releng/6.4/contrib/opie/libopie/readrec.c
releng/6.4/sys/conf/newvers.sh
releng/7.1/UPDATING
releng/7.1/contrib/opie/libopie/readrec.c
releng/7.1/sys/conf/newvers.sh
releng/7.2/UPDATING
releng/7.2/contrib/opie/libopie/readrec.c
releng/7.2/lib/libc/sys/mount.2
releng/7.2/sys/conf/newvers.sh
releng/7.2/sys/nfsclient/nfs_vfsops.c
releng/7.3/UPDATING
releng/7.3/contrib/opie/libopie/readrec.c
releng/7.3/lib/libc/sys/mount.2
releng/7.3/sys/conf/newvers.sh
releng/7.3/sys/nfsclient/nfs_vfsops.c
releng/8.0/UPDATING
releng/8.0/contrib/opie/libopie/readrec.c
releng/8.0/lib/libc/sys/mount.2
releng/8.0/sys/conf/newvers.sh
releng/8.0/sys/nfsclient/nfs_vfsops.c
releng/8.0/usr.sbin/jail/jail.c
stable/6/contrib/opie/libopie/readrec.c
stable/7/contrib/opie/libopie/readrec.c
stable/7/lib/libc/sys/mount.2
stable/7/sys/nfsclient/nfs_vfsops.c
stable/8/contrib/opie/libopie/readrec.c
stable/8/lib/libc/sys/mount.2
stable/8/sys/nfsclient/nfs_vfsops.c
stable/8/usr.sbin/jail/jail.c
Modified: head/contrib/opie/libopie/readrec.c
==============================================================================
--- head/contrib/opie/libopie/readrec.c Thu May 27 01:27:25 2010 (r208585)
+++ head/contrib/opie/libopie/readrec.c Thu May 27 03:15:04 2010 (r208586)
@@ -141,10 +141,8 @@ int __opiereadrec FUNCTION((opie), struc
if (c = strchr(opie->opie_principal, ':'))
*c = 0;
- if (strlen(opie->opie_principal) > OPIE_PRINCIPAL_MAX)
- (opie->opie_principal)[OPIE_PRINCIPAL_MAX] = 0;
- strcpy(principal, opie->opie_principal);
+ strlcpy(principal, opie->opie_principal, sizeof(principal));
do {
if ((opie->opie_recstart = ftell(f)) < 0)
Modified: head/lib/libc/sys/mount.2
==============================================================================
--- head/lib/libc/sys/mount.2 Thu May 27 01:27:25 2010 (r208585)
+++ head/lib/libc/sys/mount.2 Thu May 27 03:15:04 2010 (r208586)
@@ -107,7 +107,7 @@ This restriction can be removed by setti
.Va vfs.usermount
.Xr sysctl 8
variable
-to a non-zero value.
+to a non-zero value; see the BUGS section for more information.
.Pp
The following
.Fa flags
@@ -374,3 +374,10 @@ system call first appeared in
.Fx 5.0 .
.Sh BUGS
Some of the error codes need translation to more obvious messages.
+.Pp
+Allowing untrusted users to mount arbitrary media, e.g. by enabling
+.Va vfs.usermount ,
+should not be considered safe.
+Most file systems in
+.Fx
+were not built to safeguard against malicious devices.
Modified: head/sys/nfsclient/nfs_vfsops.c
==============================================================================
--- head/sys/nfsclient/nfs_vfsops.c Thu May 27 01:27:25 2010 (r208585)
+++ head/sys/nfsclient/nfs_vfsops.c Thu May 27 03:15:04 2010 (r208586)
@@ -1074,6 +1074,11 @@ nfs_mount(struct mount *mp)
error = EINVAL;
goto out;
}
+ if (args.fhsize < 0 || args.fhsize > NFSX_V3FHMAX) {
+ vfs_mount_error(mp, "Bad file handle");
+ error = EINVAL;
+ goto out;
+ }
if (mp->mnt_flag & MNT_UPDATE) {
struct nfsmount *nmp = VFSTONFS(mp);
Modified: head/usr.sbin/jail/jail.c
==============================================================================
--- head/usr.sbin/jail/jail.c Thu May 27 01:27:25 2010 (r208585)
+++ head/usr.sbin/jail/jail.c Thu May 27 03:15:04 2010 (r208586)
@@ -511,6 +511,10 @@ set_param(const char *name, char *value)
*value++ = '\0';
}
+ /* jail_set won't chdir along with its chroot, so do it here. */
+ if (!strcmp(name, "path") && chdir(value) < 0)
+ err(1, "chdir: %s", value);
+
/* Check for repeat parameters */
for (i = 0; i < nparams; i++)
if (!strcmp(name, params[i].jp_name)) {
More information about the svn-src-head
mailing list