diff options
author | pst <pst@FreeBSD.org> | 1996-04-24 20:18:25 +0000 |
---|---|---|
committer | pst <pst@FreeBSD.org> | 1996-04-24 20:18:25 +0000 |
commit | d88ab4bed7f2b51e29ecc41459ace7ae56b707a3 (patch) | |
tree | c127e9a35786a121fe4ecbb33bf4b18fde15c3c0 | |
parent | af5eac078b622c240d40982a0ae1da0eb33261a2 (diff) | |
download | FreeBSD-src-d88ab4bed7f2b51e29ecc41459ace7ae56b707a3.zip FreeBSD-src-d88ab4bed7f2b51e29ecc41459ace7ae56b707a3.tar.gz |
Close a security hole in sliplogin.
If you use sliplogin as a user shell (in /etc/passwd) upgrade to this version.
Reviewed by: bde, peter
Submitted by: AUS CERT
Obtained from: Linux sliplogin-2.02
-rw-r--r-- | usr.sbin/sliplogin/sliplogin.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/usr.sbin/sliplogin/sliplogin.c b/usr.sbin/sliplogin/sliplogin.c index 220ffa8..26b75cf 100644 --- a/usr.sbin/sliplogin/sliplogin.c +++ b/usr.sbin/sliplogin/sliplogin.c @@ -88,6 +88,13 @@ static char sccsid[] = "@(#)sliplogin.c 8.2 (Berkeley) 2/1/94"; #include <signal.h> #include "pathnames.h" +extern char **environ; + +static char *restricted_environ[] = { + "PATH=" _PATH_STDPATH, + NULL +}; + int unit; int slip_mode; speed_t speed; @@ -124,6 +131,8 @@ findid(name) char buf[128]; int i, j, n; + environ = restricted_environ; /* minimal protection for system() */ + (void)strcpy(loginname, name); if ((fp = fopen(_PATH_ACCESS, "r")) == NULL) { accfile_err: |