Home    |    View Topics    |    Search    |    Contact Us    |   



Category:   OS (UNIX)  >   Fts Vendors:   FreeBSD
(NetBSD Issues Fix) Fts Libc File Traversal Routines May Let Local Users Cause the Routines to Make Unauthorized Modification to or Removal of Files on the System
SecurityTracker Alert ID:  1002364
SecurityTracker URL:
CVE Reference:   GENERIC-MAP-NOMATCH   (Links to External Site)
Date:  Sep 8 2001
Impact:   Disclosure of system information, Modification of system information
Fix Available:  Yes  Vendor Confirmed:  Yes  
Version(s): FreeBSD 4.3-RELEASE, 4.3-STABLE prior to the correction date; other OSs may also be affected
Description:   FreeBSD announced a race condition vulnerability in the fts routines that are used to traverse a file system that may allow a local user to cause the application using fts to access other parts of the file system.

The fts standard C library (libc) routines are reportedly vulnerable to a race condition when ascending a file hierarchy, which allows a local user that has control over part of the hierarchy into which fts is descending to cause the application to ascend beyond the starting point of the file traversal and enter other parts of the filesystem.

If the fts routines are being used by an application to perform operations on the filesystem (such as a recursive find or rm), the application may cause system damage or unauthorized modification of files.

Impact:   A local user may be able to cause files to be removed or modified when another user executes a command that uses the fts routines in a vulnerable manner.
Solution:   The vendor has released a fix. See the Source Message for the vendor's advisory containing directions on how to obtain the appropriate fix.
Vendor URL: (Links to External Site)
Cause:   Access control error
Underlying OS:  UNIX (NetBSD)
Underlying OS Comments:  Advisory is for FreeBSD, but it also applies to other OSs

Message History:   This archive entry is a follow-up to the message listed below.
Jun 8 2001 Fts Libc File Traversal Routines May Let Local Users Cause the Routines to Make Unauthorized Modification to or Removal of Files on the System

 Source Message Contents

Subject:  NetBSD Security Advisory 2001-016: unsafe chdir usage in fts(3)


		 NetBSD Security Advisory 2001-016

Topic:		unsafe chdir usage in fts(3)

Version:	All NetBSD releases prior to July 9, 2001.

Severity:	Local users can trick processes that walk file system
		trees to perform their actions in the wrong location.

Fixed:		NetBSD-current:		July 9, 2001
		NetBSD-1.5 branch:	August 22, 2001 (1.5.2 includes the fix)


The fts(3) functions can be tricked by a rogue user into performing
actions on incorrect file system hierarchies.

Technical Details

The macro for chdir used in libc/gen/fts (__fts13.c after NetBSD 1.3)
did not perform sufficient safety checks. If any directory (or symlink
to a directory) above the current directory fts was processing was
moved, the fts-using application could be made to descend the wrong
directory sub-tree, and/or ascend above the original starting directory.
Once it has ascended above the starting directory, the process could
descend into an unintended file system hierarchy.

This is particularly dangerous when combined with automated scripts
which run programs such as 'rm -r'.

Solutions and Workarounds

The following instructions describe how to upgrade your C library
and affected statically linked system binaries by updating your source
tree and rebuilding and installing a new version of the C library
and affected binaries.

* NetBSD-current: 

	Systems running NetBSD-current dated from before 2001-06-09
	should be upgraded to NetBSD-current dated 2001-06-10 or later.

	The following directory needs to be updated from the
	netbsd-current CVS branch (aka HEAD):

	To update from CVS, re-build, and re-install libc:
		# cd /usr/src/lib/libc
		# cvs update -d -P
		# make cleandir dependall install

	Alternatively, apply the following patch (with potential offset 
	differences) and rebuild & re-install libc:

	To patch, re-build and re-install libc:
		# cd /usr/src
		# patch < /path/to/SA2001-016-fts.patch
		# make cleandir dependall install

	The following static binaries must also be rebuilt for the fix
	to be complete:
		/bin/chmod /bin/cp /bin/ksh /bin/ls /bin/pax /bin/rm
		/sbin/dump /sbin/dump_lfs

* NetBSD 1.5, 1.5.1:

	Systems running NetBSD releases up to and including 1.5.1 should
	apply the following patch (with potential offset differences):

	To patch, re-build and re-install libc
		# cd /usr/src
		# patch < /path/to/SA2001-016-fts.patch
		# make cleandir dependall install

	The following static binaries must also be rebuilt for the fix
	to be complete:
		/bin/chmod /bin/cp /bin/ksh /bin/ls /bin/pax /bin/rm
		/sbin/dump /sbin/dump_lfs

Systems running releases older than NetBSD 1.5 should be upgraded to
NetBSD 1.5.1 before applying the fixes described here.

Thanks To

Kris Kennaway for initial notification of the issue.

Christos Zoulas for patches, inspired by Todd C. Miller, and for
clarification of the descriptions in this advisory.

Revision History

	2001-09-06	Initial release

More Information

An up-to-date PGP signed copy of this release will be maintained at

Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.ORG/ and http://www.NetBSD.ORG/Security/.

Copyright 2001, The NetBSD Foundation, Inc.  All Rights Reserved.

$NetBSD: NetBSD-SA2001-016.txt,v 1.11 2001/09/06 15:40:50 lukem Exp $

Version: GnuPG v1.0.6 (NetBSD)
Comment: For info see



Go to the Top of This SecurityTracker Archive Page

Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2022, LLC