From owner-freebsd-bugs@FreeBSD.ORG Sun Nov 11 20:20:01 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 400A816A46B for ; Sun, 11 Nov 2007 20:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 229D613C4A3 for ; Sun, 11 Nov 2007 20:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id lABKK0h0040483 for ; Sun, 11 Nov 2007 20:20:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id lABKK0td040482; Sun, 11 Nov 2007 20:20:00 GMT (envelope-from gnats) Resent-Date: Sun, 11 Nov 2007 20:20:00 GMT Resent-Message-Id: <200711112020.lABKK0td040482@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Pierre Riteau Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F04416A418 for ; Sun, 11 Nov 2007 20:18:36 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 2A9B013C4B0 for ; Sun, 11 Nov 2007 20:18:36 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.1/8.14.1) with ESMTP id lABKIBET057060 for ; Sun, 11 Nov 2007 20:18:11 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.1/8.14.1/Submit) id lABKIBDj057059; Sun, 11 Nov 2007 20:18:11 GMT (envelope-from nobody) Message-Id: <200711112018.lABKIBDj057059@www.freebsd.org> Date: Sun, 11 Nov 2007 20:18:11 GMT From: Pierre Riteau To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: kern/117987: read(2) on directories might leak filenames of deleted files X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Nov 2007 20:20:01 -0000 >Number: 117987 >Category: kern >Synopsis: read(2) on directories might leak filenames of deleted files >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Nov 11 20:20:00 UTC 2007 >Closed-Date: >Last-Modified: >Originator: Pierre Riteau >Release: FreeBSD 7.0-BETA2 >Organization: >Environment: FreeBSD freebsd.localdomain 7.0-BETA2 FreeBSD 7.0-BETA2 #0: Fri Nov 2 16:47:33 UTC 2007 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 >Description: On FreeBSD, any user can open(2) and read(2) a directory when he has read rights to it. read(2)ing a directory dumps the content of the inode of that directory, which might leak filename of deleted files. Those filenames may be secret. >How-To-Repeat: $ cd /home/pierre $ ls . .history .login_conf .profile . .lesshst .mail_aliases .rhosts .cshrc .login .mailrc .shrc $ chmod 700 . # no one should list the content of this directory now $ touch secretfilename # no one should see this filename $ rm secretfilename $ chmod 755 . # ok, I can make it public, secretfilename is gone Another user can now do : $ cat -v /home/pierre Ym ^@^L^@^D^A.^@^@^@Xm ^@^L^@^D^B..^@^@Zm ^@^P^@^H^F.cshrc^@M-L[m ^@^P^@^H^F.login^@M-L\m ^@^T^@^H^K.login_conf^@]m ^@^P^@^H^G.mailrc^@^m ^@^T^@^H^H.profile^@M-+M-^WM-L_m ^@^P^@^H^E.shrc^@M-^WM-L`m ^@^X^@^H^M.mail_aliases^@OM-Bam ^@^P^@^H^G.rhosts^@bm ^@^T^@^H^H.history^@M-;^NM-Mcm ^@D^A^H^H.lesshst^@^K^MM-Mdm ^@0^A^H^Nsecretfilename^@M-B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ and he sees the secretfilename. >Fix: On OpenBSD read(2)ing a directory always returns 0 (end-of-file) (on a FFS1 filesystem). >Release-Note: >Audit-Trail: >Unformatted: