[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Sheflug] Stupid cron question



* Chris J/#6 (sixie [at] nccnet.co.uk) wrote:
> 
> > I wouldn't swear to it.. but maybe to get around problems with the
> > editor not writing atomicly, and possibility of there being only part of
> > a crontab there at the moment cron runs?
> > 
> > I'm probably wrong of course.. and it's just be to stop the user
> > needing permissions to /var/spool/cron/crontabs/.
> > 
> 
> The temporary file allows crontab to to a basic syntax check of the file 
> before installing it as cron. It also prevents the user corrupting their 
> current cron. Yes, it has the added side effect of being able to lock the 
> crontab directory root read/write only. crontab though needs setuid/setgid 
> bits set so it /can/ write to the cron directory. Therefore crontab should 
> also be a secure binary against buffer overruns.
>

Yup.

> > 
> > I also recall reading an argument against using pid's in temporary
> > filenames, although I can't remember it now, and possibly it was against
> > using consecutive pid's.. but I seem to recall it being by one of the
> > OpenBSD folks.. 
> > 
> 
> Yes. You could get a race that allows someone else access to the file. In C to 
> get a temporary file using a pid, you could do:
> 	pid = getpid();
> 	sprintf (tmpfile, "/tmp/myfile.%d", pid);
> 	fopen (tmpfile, "rw");
> 	.
> 	.
> 	.
> 
> the race is that Mr Evil could get the pid of the program and create 
> /tmp/myfile.<pid> with his rights, or symlink /tmp/myfile.pid to somewhere 
> else where he could try more attacks against it. THe C library routine 
> mktemp(3) suffers the same race, but mkstemp(3) doesn't (see below).
> 
> > 
> > And seeing as I'm babbling like a cretin anyway.
> > 
> > Why is it, that every peice of information about creating secure tmp
> > files, says to use mkstemp(), but the mkstemp() manpage says not to use it,
> > and to use tmpfile()? :)  (and seeing as mkstemp() uses the pid, I guess
> > what I was thinking about, must be random pids).
> > 
> 
> Reading the manpage, it's not a security issue with mkstemp, but a portability 
> issue...from said page:
> 
> 	"Don't use this function, use tmpfile(3) instead. It's
> 	better defined and more portable."
> 
> 

Hmmm, I must have missed that... *kicks himself* :)

-- 
[ Richard Lowe - richlowe - richlowe [at] richlowe.demon.co.uk ]
[            http://www.snowman.net/~richlowe/            ]

---------------------------------------------------------------------
Sheffield Linux User's Group - http://www.sheflug.co.uk
To unsubscribe from this list send mail to
- <sheflug-request [at] vuw.ac.nz> - with the word 
 "unsubscribe" in the body of the message. 

  GNU the choice of a complete generation.