patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
		
			
				
	
	
		
			127 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
-----BEGIN PGP SIGNED MESSAGE-----
 | 
						|
 | 
						|
=============================================================================
 | 
						|
FreeBSD-SA-98:05                                            Security Advisory
 | 
						|
                                                                FreeBSD, Inc.
 | 
						|
 | 
						|
Topic:          system crash with NFS
 | 
						|
 | 
						|
Category:       core
 | 
						|
Module:         kernel
 | 
						|
Announced:      1998-06-04
 | 
						|
Affects:        FreeBSD 2.2.* and FreeBSD-stable before 1998/05/31
 | 
						|
		this problem.
 | 
						|
Corrected:      FreeBSD-current as of 1998/05/31
 | 
						|
FreeBSD only:   no (also other 4.4BSD based systems may be affected)
 | 
						|
 | 
						|
Patches:        ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-98:05/
 | 
						|
 | 
						|
=============================================================================
 | 
						|
IMPORTANT MESSAGE: The FreeBSD security officer now uses the policy
 | 
						|
ftp://ftp.freebsd.org/pub/FreeBSD/POLICY.asc for sending out advisories.
 | 
						|
=============================================================================
 | 
						|
 | 
						|
I.   Background    
 | 
						|
 | 
						|
     NFS can be used to mount remote file systems. Apart from being
 | 
						|
     remote, it acts like a normal UFS file system. Among others,
 | 
						|
     This means that creating hard links can be done in NFS
 | 
						|
     file systems
 | 
						|
 | 
						|
II.  Problem Description
 | 
						|
 | 
						|
     When creating hard links on file systems, the kernel checks that
 | 
						|
     both the original file and the link to it are located on the same
 | 
						|
     file system. Unfortunately, there is an error in the NFS kernel code
 | 
						|
     in FreeBSD 2.2.* systems that performs this check.
 | 
						|
 | 
						|
III. Impact
 | 
						|
     
 | 
						|
     It is possible to crash a FreeBSD 2.2.* system by hard linking
 | 
						|
     a device special files to a file on an NFS mounted file system.
 | 
						|
 | 
						|
     FreeBSD-current is not vulnerable.
 | 
						|
 | 
						|
IV.  Workaround
 | 
						|
 | 
						|
     No real work around is known (except for unmounting your NFS
 | 
						|
     file systems).
 | 
						|
 | 
						|
V.   Solution
 | 
						|
 | 
						|
     Apply one of the following patches, rebuild your kernel,
 | 
						|
     install it and reboot your system.
 | 
						|
 | 
						|
     The patches below can be found on
 | 
						|
	ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-98:05/
 | 
						|
 | 
						|
 | 
						|
     Patch for 2.2.5 and 2.2.6 systems:
 | 
						|
 | 
						|
 | 
						|
  Index: nfs_vnops.c
 | 
						|
  ===================================================================
 | 
						|
  RCS file: /home/cvsup/freebsd/CVS/src/sys/nfs/nfs_vnops.c,v
 | 
						|
  retrieving revision 1.36.2.6
 | 
						|
  retrieving revision 1.36.2.7
 | 
						|
  diff -u -r1.36.2.6 -r1.36.2.7
 | 
						|
  --- nfs_vnops.c	1998/05/13 05:48:45	1.36.2.6
 | 
						|
  +++ nfs_vnops.c	1998/05/31 00:07:29	1.36.2.7
 | 
						|
  @@ -1755,17 +1755,8 @@
 | 
						|
   		struct componentname *a_cnp;
 | 
						|
   	} */ *ap;
 | 
						|
   {
 | 
						|
  -#if defined(__NetBSD__)
 | 
						|
  -	/*
 | 
						|
  -	 * Since the args are reversed in the VOP_LINK() calls,
 | 
						|
  -	 * switch them back. Argh!
 | 
						|
  -	 */
 | 
						|
  -	register struct vnode *vp = ap->a_tdvp;
 | 
						|
  -	register struct vnode *tdvp = ap->a_vp;
 | 
						|
  -#else
 | 
						|
   	register struct vnode *vp = ap->a_vp;
 | 
						|
   	register struct vnode *tdvp = ap->a_tdvp;
 | 
						|
  -#endif
 | 
						|
   	register struct componentname *cnp = ap->a_cnp;
 | 
						|
   	register u_long *tl;
 | 
						|
   	register caddr_t cp;
 | 
						|
  @@ -1776,11 +1767,8 @@
 | 
						|
   	int v3 = NFS_ISV3(vp);
 | 
						|
   
 | 
						|
   	if (vp->v_mount != tdvp->v_mount) {
 | 
						|
  -		VOP_ABORTOP(vp, cnp);
 | 
						|
  -		if (tdvp == vp)
 | 
						|
  -			vrele(tdvp);
 | 
						|
  -		else
 | 
						|
  -			vput(tdvp);
 | 
						|
  +		VOP_ABORTOP(tdvp, cnp);
 | 
						|
  +		vput(tdvp);
 | 
						|
   		return (EXDEV);
 | 
						|
   	}
 | 
						|
   
 | 
						|
 
 | 
						|
=============================================================================
 | 
						|
FreeBSD, Inc.
 | 
						|
 | 
						|
Web Site:                       http://www.freebsd.org/
 | 
						|
Confidential contacts:          security-officer@freebsd.org
 | 
						|
Security notifications:         security-notifications@freebsd.org
 | 
						|
Security public discussion:     freebsd-security@freebsd.org
 | 
						|
PGP Key:                ftp://ftp.freebsd.org/pub/FreeBSD/CERT/public_key.asc
 | 
						|
 | 
						|
Notice: Any patches in this document may not apply cleanly due to
 | 
						|
        modifications caused by digital signature or mailer software.
 | 
						|
        Please reference the URL listed at the top of this document
 | 
						|
        for original copies of all patches if necessary.
 | 
						|
=============================================================================
 | 
						|
 | 
						|
-----BEGIN PGP SIGNATURE-----
 | 
						|
Version: 2.6.3ia
 | 
						|
Charset: noconv
 | 
						|
 | 
						|
iQCVAwUBNXbehFUuHi5z0oilAQHS8gQAgIgUrioo3hT+mJLyxUp//ASoFPSf2+vw
 | 
						|
fmq2D9qEYyV5Od/HLBnzgb3jz5xyqWDLBx6pNV3QIPAimw3+S0oHOUYG+UCn96yD
 | 
						|
58kEx6mc8KanEHs0lzdgoqFi6ioVkPzCplxzqy+QfQvDCJPE+w7BbFkwVXhJHNof
 | 
						|
4JvVbewoA9c=
 | 
						|
=ILgB
 | 
						|
-----END PGP SIGNATURE-----
 |