On Wed, Jul 12, 2006 at 01:28:45AM +0200, Viktor Griph wrote:
> On Tue, 11 Jul 2006, Dominik Vogt wrote:
> 
> >On Tue, Jul 11, 2006 at 10:16:09AM -0500, fvwm-workers wrote:
> >>CVSROOT:    /home/cvs/fvwm
> >>Module name:        fvwm
> >>Changes by: griph   06/07/11 10:16:09
> >>
> >>Modified files:
> >>    .              : ChangeLog NEWS configure.ac
> >>    modules        : ChangeLog
> >>    modules/FvwmCommand: FvwmCommand.1.in FvwmCommand.c
> >>                         FvwmCommandS.c fifos.c
> >>
> >>Log message:
> >>fix tempfile vulnerabilities in FvwmCommand (bug #2791).
> >
> >Can you explain what you actually did, please?
> >
> 
> Sure.
> First: When deciding on the default path the three files that are to be 
> used are tested with lstat (or stat if lstat is unavalable) to have the 
> same owner as the process owner, not have nore than one hard link and not 
> be a directory nor a symbolic link. If any of the tests fail the path will 
> be redirected to $FVWM_USERDIR instead of /var/tmp to avoid attacks 
> blocking the module. If some tests are impossible to do they are 
> concidered OK.

Actually, since we are creating the file with O_CREAT | O_EXCL,
there is no chance of a symlink attack (because symlinks "exist"
even if they do not point to anything).

> Second: All open() calls use O_NOFOLLOW if that flag is defined.

Good, but I don't want new ifdefs in the code.  Instead, please
add this to the end of the AH_VERBATIM macro
"_ZEND_EXPLICIT_DEFINITIONS" in configure.ac, beginning at line
1195:

  #ifndef O_NOFOLLOW
  #define O_NOFOLLOW 0
  #endif

This snippet is added to the end of config.h.  Afterwards you can
use O_NOFOLLOW without ifdefs.  As a rule of thumb, never put any
ifdefs in a .c file (or better: anywhere).

> I believe this should be enough,

We really shouldn't be using public tempdirs at all.  I wasn't
aware that we are using /var/tmp.

> but if one are really paranoid one could 
> add checks of the opened files in FvwmCommand.c to verify that they are 
> fifos with correect permissions.

Ah, but it's too late if the file is open already.

Ciao

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]

Attachment: signature.asc
Description: Digital signature

Reply via email to