Date: Fri, 14 Mar 1997 23:49:29 +0100 From: j@uriah.heep.sax.de (J Wunsch) To: schneider@zib.de (Wolfram Schneider) Cc: committers@freebsd.org, security@freebsd.org Subject: Re: ktrace security problem Message-ID: <19970314234929.RN36549@uriah.heep.sax.de> In-Reply-To: <199703141959.UAA09558@soft13.zib.de>; from Wolfram Schneider on Mar 14, 1997 20:59:03 %2B0100 References: <199703141959.UAA09558@soft13.zib.de>
index | next in thread | previous in thread | raw e-mail
As Wolfram Schneider wrote:
> Now the user wosch (I) can read all information from sendmail ;-(
> IMHO ktrace should not overrides foreign ktrace.out files.
Somebody please review this:
cvs diff: Diffing /ktrace
Index: ktrace/ktrace.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/ktrace/ktrace.c,v
retrieving revision 1.8
diff -u -u -r1.8 ktrace.c
--- ktrace.c 1997/02/22 19:55:27 1.8
+++ ktrace.c 1997/03/14 22:47:09
@@ -72,6 +72,7 @@
int append, ch, fd, inherit, ops, pid, pidset, trpoints;
char *tracefile;
mode_t omask;
+ struct stat sb;
clear = NOTSET;
append = ops = pidset = inherit = 0;
@@ -140,8 +141,12 @@
}
omask = umask(S_IRWXG|S_IRWXO);
- if ((fd = open(tracefile, O_CREAT | O_WRONLY | (append ? 0 : O_TRUNC),
- DEFFILEMODE)) < 0)
+ if (append) {
+ if (stat(tracefile, &sb) == 0 && sb.st_uid != getuid())
+ errx(1, "Refuse to append to tracefile not owned by you");
+ } else if (unlink(tracefile) == -1 && errno != ENOENT)
+ err(1, "Cannot unlink old tracefile");
+ if ((fd = open(tracefile, O_CREAT | O_WRONLY, DEFFILEMODE)) < 0)
err(1, tracefile);
(void)umask(omask);
(void)close(fd);
--
cheers, J"org
joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970314234929.RN36549>
