Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Feb 2023 00:28:24 GMT
From:      Xin LI <delphij@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: b96684daa837 - stable/12 - pwd_mkdb(8): Don't copy comments from /etc/master.passwd to /etc/passwd.
Message-ID:  <202302040028.3140SOrg054185@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=b96684daa837462342093344a144e0ee636a9e22

commit b96684daa837462342093344a144e0ee636a9e22
Author:     Andre Albsmeier <Andre.Albsmeier@siemens.com>
AuthorDate: 2010-03-11 10:53:47 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-02-04 00:27:55 +0000

    pwd_mkdb(8): Don't copy comments from /etc/master.passwd to /etc/passwd.
    
    The intention of /etc/passwd was to support legacy applications that are
    not yet converted to use modern API like getpwent(3). Comments are not
    defined in the legacy format, so copying them could break these
    applications. Plus, it could leak sensitive information (e.g. encrypted
    form of password of an user that was commented out instead of deleted
    or disabled).
    
    PR:             bin/144652
    (cherry picked from commit 0deb25bd9d6d2cdd4aa22f0e2754161e35f3785c)
---
 usr.sbin/pwd_mkdb/pwd_mkdb.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/usr.sbin/pwd_mkdb/pwd_mkdb.c b/usr.sbin/pwd_mkdb/pwd_mkdb.c
index 13fae9510af8..601e0e71bfd5 100644
--- a/usr.sbin/pwd_mkdb/pwd_mkdb.c
+++ b/usr.sbin/pwd_mkdb/pwd_mkdb.c
@@ -470,11 +470,14 @@ main(int argc, char *argv[])
 					error("put");
 			}
 		}
-		/* Create original format password file entry */
-		if (is_comment && makeold){	/* copy comments */
-			if (fprintf(oldfp, "%s\n", line) < 0)
-				error("write old");
-		} else if (makeold) {
+		/*
+		 * Create original style password file entry.
+		 *
+		 * Don't copy comments since this could reveal encrypted
+		 * passwords if entries have been simply commented out
+		 * in master.passwd.
+		 */
+		if (makeold && !is_comment) {
 			char uidstr[20];
 			char gidstr[20];
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202302040028.3140SOrg054185>