reopen 496362
thanks

DBTS> Done as the mass-opening of symlink attack in /tmp was wrong in this case.

Why wrong?
    {
        my $ent = shift;
    
        if ($ent->head->mime_type eq 'message/rfc822') {
            if ($DEBUG) {
                unlink "/tmp/spam.log.$$" if -e "/tmp/spam.log.$$";
                open(OUT, "|$SA_LEARN -D --$spamham --single >>/tmp/spam.log.$$ 
2>&1") or die "Cannot pipe $SA_LEARN: $!";
            } else {
                open(OUT, "|$SA_LEARN --$spamham --single") or die "Cannot pipe 
$SA_LEARN: $!";
            }
    
            $ent->bodyhandle->print(\*OUT);
    --
        die "$sender, I don't recognize your domain ($domain)!";
    }
    
    if ($DEBUG) {
        MIME::Tools->debugging(1);
        open(STDERR, ">/tmp/spam_err.log");
    }
    my $parser = new MIME::Parser;
    $parser->extract_nested_messages(0);
    $parser->output_under($UNPACK_DIR);

unlink tempfile before using is not guarantee form attack.

re-read bugreport, please:

DBTS> Even if you make rm(dir) for files/directories, then  your  system  is
DBTS> not protected. Attacker can permanently create symlinks.

attacker can write script as:

#!perl

$file_for_attack='/path/to/file';

while(1)
{
    exit unless fork;
    symlink $file_for_attack, "/tmp/spam.log.$_" for ($$ .. $$+10000);
}
--

. ''`. Dmitry E. Oboukhov
: :’  : [EMAIL PROTECTED]
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment: signature.asc
Description: Digital signature

Reply via email to