Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
From: NetBSD Security Officer (security-officernetbsd.org)
Date: Thu Sep 06 2001 - 11:59:38 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]


                     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 http://www.gnupg.org

    -----END PGP SIGNATURE-----