procmail
[Top] [All Lists]

Help: what is the log said, thanks.....

2002-10-01 06:14:01
Hi,sir:

It seems something wrong with following log message:
\"Error while writing to \\\"perl -p -e \'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

my procmail.log said following message, what should I do ? thanks...


-----------------------------------------------
Sanitizing MIME attachment headers in \\\"php-db Digest 1 Oct 2002 11:39:57 
-0000 Issue 1442\\\" from php-db-digest-help(_at_)lists(_dot_)php(_dot_)net to  
msgid=<1033472397(_dot_)68309(_dot_)ezmlm(_at_)lists(_dot_)php(_dot_)net>
procmail: Error while writing to \\\" perl -p -e \\\'        #\\\\
      $pastmsghdr = 1 if /^\\\\s*$/;        #\\\\
      $XCS = \\\"X-Content-Security: [\\\" . $ENV{\\\"HOST\\\"} . \\\"]\\\" 
unless $XCS;        #\\\\
      if ($pastmsghdr) {        #\\\\
        if (!$mimebdry && $mimebdrs[0]) {        #\\\\
          warn \\\" Found no MIME boundary.\\\\n\\\" if $ENV{\\\"DEBUG\\\"};    
    #\\\\
          $mimebdry = pop @mimebdrs;        #\\\\
          $newbdry = pop @newbdrs;        #\\\\
          $rawbdry = pop @rawbdrs;        #\\\\
          $bdrytoolong = pop @bdrstoolong;        #\\\\
          $gotbdry = pop @gotbdrs;        #\\\\
          $nullbdry = pop @nullbdrs;        #\\\\
        }        #\\\\
        $_ = \\\"\\\" if $strip_attachment && !$gotbdry;        #\\\\
      } else {        #\\\\
        if (($type,$format,$junk) = 
/^Content-Type\\\\s*:\\\\s.*(application|multipart|message)\\\\/(\\\\S+)(;.*)?$/i)
 {        #\\\\
          $wanthdr = 1;        #\\\\
          print \\\"X-Security: MIME headers sanitized on \\\", 
$ENV{\\\"HOST\\\"}, \\\"\\\\n\\\";        #\\\\
          print \\\"\\\\tSee 
http://www.impsec.org/email-tools/sanitizer-intro.html\\\\n\\\";;        #\\\\
          print \\\"\\\\tfor details. \\\\$Revision: 1.134 $x\\\\$Date: 
2002-04-21 16:30:40-07 $x\\\\n\\\";        #\\\\
          print \\\"X-Security: The postmaster has not enabled quarantine of 
poisoned messages.\\\\n\\\" unless $ENV{\\\"SECURITY_QUARANTINE\\\"};        
#\\\\
          if ($type =~ /application/i) {        #\\\\
            $inmimehdr = 1;        #\\\\
          } elsif ($type =~ /message/i && $format =~ /rfc822/i) {        #\\\\
            $rcrsmsg = $inmimehdr = 1;        #\\\\
          }        #\\\\
        } elsif (/^\\\\S/) {        #\\\\
          $wanthdr = 0;        #\\\\
        }        #\\\\
        if ($wanthdr) {        #\\\\
          if (($mimebdry) = 
/boundary\\\\s*=\\\\s*((\\\"\\\")|(\\\"[^\\\"]+\\\")|([^\\\"]\\\\S+))/i) {      
  #\\\\
            $mimebdry =~ s/(^\\\"|\\\"$)//g;        #\\\\
            $rawbdry = $mimebdry;        #\\\\
            $gotbdry = 1;        #\\\\
            $wanthdr = 0;        #\\\\
            $bdrytoolong = $nullbdry = 0;        #\\\\
            if ($bdrytoolong = (length($mimebdry) > 80)) {        #\\\\
              warn \\\" Truncating long MIME body-part boundary 
string.\\\\n\\\";        #\\\\
              $newbdry = substr($mimebdry,0,64);        #\\\\
              $mimebdry = quotemeta($mimebdry);        #\\\\
              s/${mimebdry}/${newbdry}/;        #\\\\
              $rawbdry =~ s/${mimebdry}/${newbdry}/;        #\\\\
            } elsif ($nullbdry = (length($mimebdry) < 1)) {        #\\\\
              warn \\\" Replacing null MIME body-part boundary 
string.\\\\n\\\";        #\\\\
              $newbdry = \\\"==NULL_MIME_BOUNDARY_ATTACK_SANITIZED-${$}==\\\";  
      #\\\\
              s/boundary\\\\s*=\\\\s*\\\"\\\"/boundary = \\\"${newbdry}\\\"/i;  
      #\\\\
            } else {        #\\\\
              $mimebdry = quotemeta($mimebdry);        #\\\\
            }        #\\\\
          }        #\\\\
        }        #\\\\
      }        #\\\\
      if ($mimebdry || ($gotbdry && $nullbdry) || $inmimehdr) {        #\\\\
        if (/^\\\\s*$/) {        #\\\\
          $inmimehdr = 0;        #\\\\
          if ($rcrsmsg) {        #\\\\
            push @mimebdrs, $mimebdry;        #\\\\
            push @newbdrs, $newbdry;        #\\\\
            push @rawbdrs, $rawbdry;        #\\\\
            push @bdrstoolong, $bdrytoolong;        #\\\\
            push @gotbdrs, $gotbdry;        #\\\\
            push @nullbdrs, $nullbdry;        #\\\\
            $mimebdry = $newbdry = \\\"\\\";        #\\\\
            $rcrsmsg = $pastmsghdr = $bdrytoolong = $gotbdry = 0;        #\\\\
          }        #\\\\
        } elsif (/^--${mimebdry}(--)?$/) {        #\\\\
          $mend = $1;        #\\\\
          s/${mimebdry}/${newbdry}/ if $bdrytoolong;        #\\\\
          s/^--/--${newbdry}${mend}/ if $nullbdry;        #\\\\
          if ($mend) {        #\\\\
            if ($mimebdrs[0]) {        #\\\\
              $mimebdry = pop @mimebdrs;        #\\\\
              $newbdry = pop @newbdrs;        #\\\\
              $rawbdry = pop @rawbdrs;        #\\\\
              $bdrytoolong = pop @bdrstoolong;        #\\\\
              $gotbdry = pop @gotbdrs;        #\\\\
              $nullbdry = pop @nullbdrs;        #\\\\
            }        #\\\\
          } else {        #\\\\
            $inmimehdr = 1;        #\\\\
            $rcrsmsg = $strip_attachment = $check_attachment = 0;        #\\\\
          }        #\\\\
        } elsif (!$inmimehdr && $strip_attachment) {        #\\\\
          $_ = \\\"\\\";        #\\\\
        } elsif (!$inmimehdr && $check_attachment) {        #\\\\
          $check_attachment = 0;        #\\\\
          if ($destf = `mktemp /tmp/mailchk.XXXXXX`) {        #\\\\
            chomp($destf);        #\\\\
            if (open(DECODE,\\\"|mimencode -u -o $destf\\\")) {        #\\\\
              do {        #\\\\
                print $_;        #\\\\
                print DECODE $_;        #\\\\
                $_ = <>;        #\\\\
                $lastline = $_;        #\\\\
              } until (/^\\\\s*$/ || /^--/);        #\\\\
              close(DECODE);        #\\\\
              $msapp = $score = 0;        #\\\\
              @scores = ();        #\\\\
              $why = \\\"\\\";        #\\\\
              # Run virus-checker here.        #\\\\
              open(ATTCH,\\\"< $destf\\\");        #\\\\
              while () {        #\\\\
                if (/(\\\\000|\\\\001|\\\\004)(VirusProtection)/i) {        
#\\\\
                        $why .= \\\"    99 for $1\\\\n\\\";        #\\\\
                        $score+= 99;        #\\\\
                }        #\\\\
                if 
(/\\\\000(select\\\\s[^\\\\000]*shell\\\\s*\\\\(\\\\s*[\\\"\\\\047])/i) {       
 #\\\\
                        $why .= \\\"    99 for $1\\\\n\\\";        #\\\\
                        $score+= 99;        #\\\\
                }        #\\\\
                if (/\\\\000(regedit)/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(Shell\\\\s*\\\\()/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(Save(Normal|Properties)Prompt)/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(Outlook\\\\.Application)\\\\000/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(CountOfLines)/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(AddFromString)/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(StartupPath)/i) {        #\\\\
                        $why .= \\\"     9 for $1\\\\n\\\";        #\\\\
                        $score+= 9;        #\\\\
                }        #\\\\
                if (/\\\\000(CreateObject)/i) {        #\\\\
                        $why .= \\\"     4 for $1\\\\n\\\";        #\\\\
                        $score+= 4;        #\\\\
                }        #\\\\
                if 
(/(\\\\000|\\\\004)([a-z0-9_]\\\\.)*(Autoexec|Workbook_(Open|BeforeClose|Window(De)?activate)|Document_(Open|New|Close))/i)
 {        #\\\\
                        $why .= \\\"     4 for $&\\\\n\\\";        #\\\\
                        $score+= 4;        #\\\\
                }        #\\\\
                if 
(/(\\\\000|\\\\004)(Logon|AddressLists|AddressEntries|Recipients|Attachments|Logoff)/i)
 {        #\\\\
                        $why .= \\\"     4 for $&\\\\n\\\";        #\\\\
                        $score+= 4;        #\\\\
                }        #\\\\
                if (/(\\\\000|\\\\004)(Subject|Body)/i) {        #\\\\
                        $why .= \\\"     4 for $&\\\\n\\\" unless $scores[0];   
     #\\\\
                        $scores[0] = 4;        #\\\\
                }        #\\\\
                if (/\\\\000(Options[^\\\\w\\\\s])/i) {        #\\\\
                        $why .= \\\"     2 for $1\\\\n\\\";        #\\\\
                        $score+= 2;        #\\\\
                }        #\\\\
                if (/\\\\000(CodeModule)/i) {        #\\\\
                        $why .= \\\"     2 for $1\\\\n\\\";        #\\\\
                        $score+= 2;        #\\\\
                }        #\\\\
                if (/\\\\000(([a-z]+\\\\.)?Application)\\\\000/i) {        #\\\\
                        $why .= \\\"     2 for $1\\\\n\\\";        #\\\\
                        $score+= 2;        #\\\\
                }        #\\\\
                if (/(\\\\000|\\\\004)stdole/i) {        #\\\\
                        $why .= \\\"     2 for $&\\\\n\\\";        #\\\\
                        $score+= 2;        #\\\\
                }        #\\\\
                if (/(\\\\000|\\\\004)NormalTemplate/i) {        #\\\\
                        $why .= \\\"     2 for $&\\\\n\\\";        #\\\\
                        $score+= 2;        #\\\\
                }        #\\\\
                if (/\\\\000(ID=\\\"{[-0-9A-F]+(}\\\")?)/i) {        #\\\\
                        $why .= \\\"     4 for $1\\\\n\\\";        #\\\\
                        $score+= 4;        #\\\\
                }        #\\\\
                if (/\\\\000(ThisWorkbook)\\\\000/i) {        #\\\\
                        $why .= \\\"     1 for $1\\\\n\\\";        #\\\\
                        $score+= 1;        #\\\\
                }        #\\\\
                if (/\\\\000(PrivateProfileString)/i) {        #\\\\
                        $why .= \\\"     1 for $1\\\\n\\\";        #\\\\
                        $score+= 1;        #\\\\
                }        #\\\\
                if 
(/(\\\\000|\\\\004)(ActiveDocument|ThisDocument|ThisWorkbook)/i) {        #\\\\
                        $why .= \\\"     1 for $&\\\\n\\\";        #\\\\
                        $score+= 1;        #\\\\
                }        #\\\\
                if 
(/\\\\000(\\\\[?HKEY_(CLASSES_ROOT|CURRENT_USER|LOCAL_MACHINE))/) {        #\\\\
                        $why .= \\\"     1 for $1\\\\n\\\";        #\\\\
                        $score+= 1;        #\\\\
                }        #\\\\
                $msapp+= 1 if /\\\\000(Microsoft (Word Document|Excel 
Worksheet|Excel|PowerPoint)|MSWordDoc|Word\\\\.Document\\\\.[0-9]+|Excel\\\\.Sheet\\\\.[0-9]+)\\\\000/;
        #\\\\
              }        #\\\\
              close(ATTCH);        #\\\\
              unlink($destf);        #\\\\
              if ($msapp) {        #\\\\
                for (@scores) {        #\\\\
                  $score += $_;        #\\\\
                }        #\\\\
                if ($histfile = $ENV{\\\"SCORE_HISTORY\\\"}) {        #\\\\
                  if (open(HIST,\\\">>$histfile\\\")) {        #\\\\
                    print HIST \\\"score=$score to=\\\".$ENV{\\\"TO\\\"}.\\\" 
from=\\\".$ENV{\\\"FROM\\\"}.\\\"\\\\n\\\";        #\\\\
                    close HIST;        #\\\\
                  }        #\\\\
                }        #\\\\
                $poison_score = $ENV{\\\"POISONED_SCORE\\\"};        #\\\\
                $poison_score = 5 if $poison_score < 5;        #\\\\
                if ($score > $poison_score && !$ENV{\\\"SCORE_ONLY\\\"}) {      
  #\\\\
                  warn \\\" POSSIBLE MACRO EXPLOIT: Score=$score\\\\n\\\";      
  #\\\\
                  print \\\"\\\\n\\\\n--$rawbdry\\\\n\\\";        #\\\\
                  print \\\"Content-Type: TEXT/PLAIN;\\\\n\\\";        #\\\\
                  print \\\"$XCS NOTIFY\\\\n\\\" if 
$ENV{\\\"SECURITY_NOTIFY\\\"} || $ENV{\\\"SECURITY_NOTIFY_VERBOSE\\\"};        
#\\\\
                  print \\\"$XCS REPORT: Trapped poisoned Microsoft 
attachment\\\\n\\\" if $ENV{\\\"SECURITY_NOTIFY\\\"} || 
$ENV{\\\"SECURITY_NOTIFY_VERBOSE\\\"};        #\\\\
                  print \\\"$XCS QUARANTINE\\\\n\\\" if 
$ENV{\\\"SECURITY_QUARANTINE\\\"};        #\\\\
                  print \\\"Content-Description: SECURITY 
WARNING\\\\n\\\\n\\\";        #\\\\
                  print \\\"SECURITY WARNING!\\\\n\\\";        #\\\\
                  print \\\"The mail delivery system has detected that the 
preceding\\\\n\\\";        #\\\\
                  print \\\"document attachment appears to contain hazardous 
macro code.\\\\n\\\";        #\\\\
                  print \\\"Macro Scanner score: $score\\\\n\\\";        #\\\\
                  if ($ENV{\\\"SCORE_DETAILS\\\"}) {        #\\\\
                          print \\\"Macro Scanner score details:\\\\n\\\";      
  #\\\\
                          $why =~ s/[\\\\000-\\\\011\\\\013-\\\\037]//g;        
#\\\\
                          print $why;        #\\\\
                  }        #\\\\
                  print \\\"Contact your system administrator 
immediately!\\\\n\\\\n\\\";        #\\\\
                }        #\\\\
              } else {        #\\\\
                $score = 0;        #\\\\
              }        #\\\\
              if ($lastline =~ /^--${mimebdry}(--)?$/) {        #\\\\
                $inmimehdr = 1;        #\\\\
                $check_attachment = 0;        #\\\\
                $lastline =~ s/${mimebdry}/${newbdry}/ if $bdrytoolong;        
#\\\\
              }        #\\\\
              print $lastline;        #\\\\
            } else {        #\\\\
              warn \\\"*** Decoding: $!  - mimencode?\\\\n\\\";        #\\\\
            }        #\\\\
          } else {        #\\\\
            warn \\\"*** Cannot extract - mktemp?\\\\n\\\";        #\\\\
          }        #\\\\
        }        #\\\\
        if ($inmimehdr || $hdrcnt) {        #\\\\
          if (/^(\\\\s+\\\\S|(file)?name)/) {        #\\\\
            s/^\\\\s*/ /;        #\\\\
            s/^\\\\s*// if $hdrtxt =~ /\\\"[^\\\"]*[^;]$/;        #\\\\
            s/\\\\s*\\\\n$//;        #\\\\
            $hdrtxt .= $_;        #\\\\
            $_ = \\\"\\\";        #\\\\
          } else {        #\\\\
            if ($hdrtxt) {        #\\\\
              $hdrtxt =~ s/([^\\\\\\\\])\\\\\\\\\\\"/\\\\1\\\\\\\\\xFF/g;       
 #\\\\
              if ($hdrtxt =~ /`\\\\s*`/) {        #\\\\
                warn \\\" Fixing double backquotes.\\\\n\\\";        #\\\\
                $hdrtxt =~ s/`\\\\s*`/\\\\\\\\\\\"/g;        #\\\\
              }        #\\\\
              if ($hdrtxt =~ 
/^[-\\\\w]+\\\\s*:.*name\\\\s*=\\\\s*\\\"[^\\\"]+$/i) {        #\\\\
                warn \\\" Fixing missing close quote on filename.\\\\n\\\";     
   #\\\\
                $hdrtxt .= \\\"\\\\\\\"\\\";        #\\\\
              }        #\\\\
              while (($hdr, $val) = $hdrtxt =~ 
/^([-\\\\w]+)\\\\s*:.*\\\\s(\\\\S+)\\\\s*=\\\\s*\\\"\\\"/i) {        #\\\\
                warn \\\" Null $val in $hdr header.\\\\n\\\";        #\\\\
                $sval = quotemeta($val);        #\\\\
                $hdrtxt =~ s/\\\\s$sval\\\\s*=\\\\s*\\\"\\\"/ X-$val=\\\"{null 
value sanitized}\\\"/;        #\\\\
              }        #\\\\
              unless ($ENV{\\\"SECURITY_DISABLE_OUTLOOK_HACKS\\\"}) {        
#\\\\
                while (($hdr,$filen) = $hdrtxt =~ 
/^(Content-Description)\\\\s*:\\\\s*text\\\\s+from\\\\s+file\\\\s+\\\\047([^\\\\047]+)\\\\047/i)
 {        #\\\\
                  warn \\\" Fixing file name \\\\\\\"$filen\\\\\\\" in 
${hdr}:\\\\n\\\";        #\\\\
                  $newfilen = $filen; $filen = quotemeta($filen);        #\\\\
                  $hdrtxt =~ s/\\\\s+\\\\047${filen}\\\\047/, 
filename=\\\"${newfilen}\\\"/ig;        #\\\\
                }        #\\\\
              }        #\\\\
              while (($junk,$filen) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:[^\\\"]*(\\\"[^\\\"]*\\\"[^\\\"]+)*name\\\\s*=\\\\s*([^\\\"\\\\s][^;]+)/i)
 {        #\\\\
                warn \\\" Fixing unquoted filename 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                $newfilen = $filen; $filen = quotemeta($filen);        #\\\\
                if ($newfilen =~ /\\\\.[a-z0-9]+\\\"[a-z0-9\\\"]+$/i) {        
#\\\\
                  warn \\\" Defanging quotes-in-extension attack.\\\\n\\\";     
   #\\\\
                  while ($newfilen =~ /\\\\.[a-z0-9]+\\\"[a-z0-9\\\"]+$/i) {    
    #\\\\
                    $newfilen =~ 
s/\\\\.([a-z0-9]+)\\\"([a-z0-9\\\"]+)$/.$1$2/i;        #\\\\
                  }        #\\\\
                }        #\\\\
                $newfilen =~ s/\\\\\\\"/\\\\\\\\\\\"/g;        #\\\\
                if ($newfilen =~ /\\\\([^)]*\\\\)/) {        #\\\\
                  warn \\\" Removing embedded RFC822 comments.\\\\n\\\";        
#\\\\
                  $newfilen =~ s/\\\\([^)]*\\\\)//g;        #\\\\
                }        #\\\\
                $hdrtxt =~ 
s/name\\\\s*=\\\\s*${filen}/name=\\\"$newfilen\\\"/ig;        #\\\\
              }        #\\\\
              while (($filen) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:.*name\\\\s*=\\\\s*\\\"(=\\\\?[^\\\"]+\\\\?Q\\\\?[^\\\"]+=(2e|3[0-9]|[46][1-9a-f]|[57][0-9a])[^\\\"]+\\\\?=)\\\"/i)
 {        #\\\\
                warn \\\" Fixing encoded plain characters in 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                $newfilen = $filen; $filen = quotemeta($filen);        #\\\\
                while ($newfilen =~ /=(2e|3[0-9]|[46][1-9a-f]|[57][0-9a])/i) {  
      #\\\\
                  $char = chr(hex(\\\"0x$1\\\"));        #\\\\
                  $newfilen =~ s/=$1/$char/gi;        #\\\\
                }        #\\\\
                $hdrtxt =~ 
s/name\\\\s*=\\\\s*\\\"${filen}\\\"/name=\\\"$newfilen\\\"/ig;        #\\\\
              }        #\\\\
              while (($filen) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:.*name\\\\s*=\\\\s*\\\"([^\\\"]+)[\\\\.\\\\s]+\\\"/i) 
{        #\\\\
                warn \\\" Fixing trailing spaces/periods in filename.\\\\n\\\"; 
       #\\\\
                $newfilen = $filen; $filen = quotemeta($filen);        #\\\\
                $hdrtxt =~ 
s/name\\\\s*=\\\\s*\\\"${filen}[\\\\.\\\\s]+\\\"/name=\\\"$newfilen\\\"/ig;     
   #\\\\
              }        #\\\\
              while (($filen) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:.*name\\\\s*=\\\\s*\\\"([^\\\"]{120})[^\\\"]{16,}\\\"/i)
 {        #\\\\
                warn \\\" Truncating long filename 
\\\\\\\"$filen...\\\\\\\".\\\\n\\\";        #\\\\
                $filen =~ s/\\\\s+$//;        #\\\\
                $filen .= \\\"...\\\";        #\\\\
                $filen .= \\\"?=\\\" if $filen =~ /^=\\\\?/;        #\\\\
                $hdrtxt =~ 
s/name\\\\s*=\\\\s*\\\"[^\\\"]{128,}\\\"/name=\\\"$filen\\\"/i;        #\\\\
                $mangle_mime_type = 1;        #\\\\
              }        #\\\\
              if (($mtype) = $hdrtxt =~ 
/^Content-Type:\\\\s+([a-z0-9-_]+\\\\/[a-z0-9-_]+)/i) {        #\\\\
                unless ($mtype =~ /^(multipart|text|message)\\\\//i) {        
#\\\\
                  unless ($hdrtxt =~ /name\\\\s*=\\\\s*\\\"/i) {        #\\\\
                    $dfrhdr .= \\\"$hdrtxt\\\\n\\\"; $hdrtxt = \\\"\\\";        
#\\\\
                  }        #\\\\
                }        #\\\\
              }        #\\\\
              if ($hdrtxt =~ /^Content-Transfer-Encoding\\\\s*:/i) {        
#\\\\
                $dfrhdr .= \\\"$hdrtxt\\\\n\\\"; $hdrtxt = \\\"\\\";        
#\\\\
              }        #\\\\
              if (($filen) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:.*name\\\\s*=\\\\s*\\\"([^\\\"]+\\\\.(do[ct]|xl[swt]|p[po]t|rtf|pps)(\\\\?=)?)\\\"/i)
 {        #\\\\
                $stripped = 0;        #\\\\
                if (!$poisoned && ($specf = 
$ENV{\\\"STRIPPED_EXECUTABLES\\\"})) {        #\\\\
                  if (open(STRIPPED,$specf)) {        #\\\\
                    warn \\\"Checking document \\\\\\\"$filen\\\\\\\" for 
stripping.\\\\n\\\";        #\\\\
                    while (chomp($stp_spec = )) {        #\\\\
                      $stp_spec =~ s/^\\\\s+//g;        #\\\\
                      $stp_spec =~ s/\\\\s.*$//g;        #\\\\
                      next unless $stp_spec;        #\\\\
                      $stp_spec =~ s/([^\\\\\\\\])\\\\./$1\\\\\\\\./g;        
#\\\\
                      $stp_spec =~ s/\\\\*/.*/g;        #\\\\
                      $stp_spec =~ s/([^\\\\(])\\\\?/$1./g;        #\\\\
                      $stp_spec .= \\\"(\\\\\\\\?=)?\\\\$\\\" unless $stp_spec 
=~ /\\\\$/;        #\\\\
                      warn \\\"Checking against 
\\\\\\\"$stp_spec\\\\\\\"\\\\n\\\" if $ENV{\\\"DEBUG\\\"};        #\\\\
                      if ($filen =~ /^${stp_spec}/i) {        #\\\\
                        warn \\\" Stripped document 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                        $stripped = 1;        #\\\\
                        print \\\"Content-Type: TEXT/PLAIN;\\\\n\\\";        
#\\\\
                        print \\\"$XCS REPORT: Microsoft attachment 
\\\\\\\"$filen\\\\\\\" stripped\\\\n\\\";        #\\\\
                        print \\\"Content-Description: SECURITY 
NOTICE\\\\n\\\\n\\\";        #\\\\
                        print $ENV{\\\"STRIPPED_WARNING\\\"};        #\\\\
                        print \\\"Filename: $filen\\\\n\\\\n\\\";        #\\\\
                        print \\\"More headers follow:\\\\n\\\\n\\\" unless 
$pastmsghdr;        #\\\\
                        $_ = $dfrhdr = $hdrtxt = \\\"\\\";        #\\\\
                        $strip_attachment = 1;        #\\\\
                        $inmimehdr = 0;        #\\\\
                        last;        #\\\\
                      }        #\\\\
                    }        #\\\\
                    close(STRIPPED);        #\\\\
                  } else {        #\\\\
                    warn \\\" Unable to open stripped-executables file 
\\\\\\\"$specf\\\\\\\".\\\\n\\\";        #\\\\
                  }        #\\\\
                }        #\\\\
                if (!$poisoned && !$stripped && ($specf = 
$ENV{\\\"POISONED_EXECUTABLES\\\"})) {        #\\\\
                  if (open(POISONED,$specf)) {        #\\\\
                    warn \\\"Checking document \\\\\\\"$filen\\\\\\\" for 
poisoning.\\\\n\\\";        #\\\\
                    while (chomp($psn_spec = )) {        #\\\\
                      $psn_spec =~ s/^\\\\s+//g;        #\\\\
                      $psn_spec =~ s/\\\\s.*$//g;        #\\\\
                      next unless $psn_spec;        #\\\\
                      $psn_spec =~ s/([^\\\\\\\\])\\\\./$1\\\\\\\\./g;        
#\\\\
                      $psn_spec =~ s/\\\\*/.*/g;        #\\\\
                      $psn_spec =~ s/([^\\\\(])\\\\?/$1./g;        #\\\\
                      $psn_spec .= \\\"(\\\\\\\\?=)?\\\\$\\\" unless $psn_spec 
=~ /\\\\$/;        #\\\\
                      warn \\\"Checking against 
\\\\\\\"$psn_spec\\\\\\\"\\\\n\\\" if $ENV{\\\"DEBUG\\\"};        #\\\\
                      if ($filen =~ /^${psn_spec}/i) {        #\\\\
                        warn \\\" Trapped poisoned document 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                        $poisoned = 1;        #\\\\
                        print \\\"Content-Type: TEXT/PLAIN;\\\\n\\\";        
#\\\\
                        print \\\"$XCS NOTIFY\\\\n\\\" if 
$ENV{\\\"SECURITY_NOTIFY\\\"} || $ENV{\\\"SECURITY_NOTIFY_VERBOSE\\\"};        
#\\\\
                        print \\\"$XCS REPORT: Trapped poisoned Microsoft 
attachment \\\\\\\"$filen\\\\\\\"\\\\n\\\" if $ENV{\\\"SECURITY_NOTIFY\\\"} || 
$ENV{\\\"SECURITY_NOTIFY_VERBOSE\\\"};        #\\\\
                        print \\\"$XCS QUARANTINE\\\\n\\\" if 
$ENV{\\\"SECURITY_QUARANTINE\\\"};        #\\\\
                        print \\\"Content-Description: SECURITY 
WARNING\\\\n\\\\n\\\";        #\\\\
                        print $ENV{\\\"POISONED_WARNING\\\"};        #\\\\
                        print \\\"Macro Scanner score: 0 (poisoned by name, 
scan skipped)\\\\n\\\\n\\\";        #\\\\
                        last;        #\\\\
                      }        #\\\\
                    }        #\\\\
                    close(POISONED);        #\\\\
                  } else {        #\\\\
                    warn \\\" Unable to open poisoned-executables file 
\\\\\\\"$specf\\\\\\\".\\\\n\\\";        #\\\\
                  }        #\\\\
                }        #\\\\
                $check_attachment = 1 unless $ENV{\\\"DISABLE_MACRO_CHECK\\\"}; 
       #\\\\
              }        #\\\\
              if (($bndry) = $hdrtxt =~ 
/^Content-Type:\\\\s+multipart\\\\/.*\\\\s+boundary\\\\s*=\\\\s*\\\"?([^\\\"]+)\\\"?/i)
 {        #\\\\
                push @mimebdrs, $mimebdry;        #\\\\
                push @newbdrs, $newbdry;        #\\\\
                push @rawbdrs, $rawbdry;        #\\\\
                push @bdrstoolong, $bdrytoolong;        #\\\\
                push @gotbdrs, $gotbdry;        #\\\\
                push @nullbdrs, $nullbdry;        #\\\\
                $mimebdry = $newbdry = $bndry;        #\\\\
                $mimebdry = quotemeta($mimebdry);        #\\\\
                $rcrsmsg = $bdrytoolong = $gotbdry = 0;        #\\\\
              }        #\\\\
              if ($hdrtxt =~ /^Content-Type:\\\\s+message\\\\/rfc822/i) {       
 #\\\\
                if (!$inmimehdr) {        #\\\\
                  push @mimebdrs, $mimebdry;        #\\\\
                  push @newbdrs, $newbdry;        #\\\\
                  push @rawbdrs, $rawbdry;        #\\\\
                  push @bdrstoolong, $bdrytoolong;        #\\\\
                  push @gotbdrs, $gotbdry;        #\\\\
                  push @nullbdrs, $nullbdry;        #\\\\
                  $mimebdry = $newbdry = \\\"\\\";        #\\\\
                  $rcrsmsg = $pastmsghdr = $bdrytoolong = $gotbdry = 0;        
#\\\\
                } else {        #\\\\
                  $rcrsmsg = 1;        #\\\\
                }        #\\\\
              }        #\\\\
              if ($ENV{\\\"SECURITY_STRIP_MSTNEF\\\"} && $hdrtxt =~ 
/^Content-Type:\\\\s+application\\\\/MS-TNEF/i) {        #\\\\
                print \\\"Content-Type: TEXT/PLAIN;\\\\n\\\";        #\\\\
                print \\\"$XCS REPORT: Stripped MS-TNEF attachment\\\\n\\\";    
    #\\\\
                print \\\"Content-Description: SECURITY NOTICE\\\\n\\\\n\\\";   
     #\\\\
                print $ENV{\\\"TNEF_WARNING\\\"};        #\\\\
                $_ = $dfrhdr = $hdrtxt = \\\"\\\";        #\\\\
                $strip_attachment = 1;        #\\\\
                $inmimehdr = 0;        #\\\\
              }        #\\\\
              while (($filen) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:.*name\\\\s*=\\\\s*\\\"([^\\\"]+\\\\.($ENV{\\\"MANGLE_EXTENSIONS\\\"})(\\\\?=)?)\\\"/io)
 {        #\\\\
                $stripped = 0;        #\\\\
                if (!$poisoned && ($specf = 
$ENV{\\\"STRIPPED_EXECUTABLES\\\"})) {        #\\\\
                  if (open(STRIPPED,$specf)) {        #\\\\
                    warn \\\"Checking \\\\\\\"$filen\\\\\\\" for 
stripping.\\\\n\\\";        #\\\\
                    while (chomp($stp_spec = )) {        #\\\\
                      $stp_spec =~ s/^\\\\s+//g;        #\\\\
                      $stp_spec =~ s/\\\\s.*$//g;        #\\\\
                      next unless $stp_spec;        #\\\\
                      $stp_spec =~ s/([^\\\\\\\\])\\\\./$1\\\\\\\\./g;        
#\\\\
                      $stp_spec =~ s/\\\\*/.*/g;        #\\\\
                      $stp_spec =~ s/([^\\\\(])\\\\?/$1./g;        #\\\\
                      $stp_spec .= \\\"(\\\\\\\\?=)?\\\\$\\\" unless $stp_spec 
=~ /\\\\$/;        #\\\\
                      warn \\\"Checking against 
\\\\\\\"$stp_spec\\\\\\\"\\\\n\\\" if $ENV{\\\"DEBUG\\\"};        #\\\\
                      if ($filen =~ /^${stp_spec}/i) {        #\\\\
                        warn \\\" Stripped executable 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                        $stripped = 1;        #\\\\
                        print \\\"Content-Type: TEXT/PLAIN;\\\\n\\\";        
#\\\\
                        print \\\"$XCS REPORT: Attachment 
\\\\\\\"$filen\\\\\\\" stripped\\\\n\\\";        #\\\\
                        print \\\"Content-Description: SECURITY 
NOTICE\\\\n\\\\n\\\";        #\\\\
                        print $ENV{\\\"STRIPPED_WARNING\\\"};        #\\\\
                        print \\\"Filename: $filen\\\\n\\\\n\\\";        #\\\\
                        print \\\"More headers follow:\\\\n\\\\n\\\" unless 
$pastmsghdr;        #\\\\
                        $_ = $dfrhdr = $hdrtxt = \\\"\\\";        #\\\\
                        $strip_attachment = 1;        #\\\\
                        $inmimehdr = 0;        #\\\\
                        last;        #\\\\
                      }        #\\\\
                    }        #\\\\
                    close(STRIPPED);        #\\\\
                  } else {        #\\\\
                    warn \\\" Unable to open stripped-executables file 
\\\\\\\"$specf\\\\\\\".\\\\n\\\";        #\\\\
                  }        #\\\\
                }        #\\\\
                if (!$poisoned && !$stripped && ($specf = 
$ENV{\\\"POISONED_EXECUTABLES\\\"})) {        #\\\\
                  if (open(POISONED,$specf)) {        #\\\\
                    warn \\\"Checking \\\\\\\"$filen\\\\\\\" for 
poisoning.\\\\n\\\";        #\\\\
                    while (chomp($psn_spec = )) {        #\\\\
                      $psn_spec =~ s/^\\\\s+//g;        #\\\\
                      $psn_spec =~ s/\\\\s.*$//g;        #\\\\
                      next unless $psn_spec;        #\\\\
                      $psn_spec =~ s/([^\\\\\\\\])\\\\./$1\\\\\\\\./g;        
#\\\\
                      $psn_spec =~ s/\\\\*/.*/g;        #\\\\
                      $psn_spec =~ s/([^\\\\(])\\\\?/$1./g;        #\\\\
                      $psn_spec .= \\\"(\\\\\\\\?=)?\\\\$\\\" unless $psn_spec 
=~ /\\\\$/;        #\\\\
                      warn \\\"Checking against 
\\\\\\\"$psn_spec\\\\\\\"\\\\n\\\" if $ENV{\\\"DEBUG\\\"};        #\\\\
                      if ($filen =~ /^${psn_spec}/i) {        #\\\\
                        warn \\\" Trapped poisoned executable 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                        $poisoned = 1;        #\\\\
                        print \\\"Content-Type: TEXT/PLAIN;\\\\n\\\";        
#\\\\
                        print \\\"$XCS NOTIFY\\\\n\\\" if 
$ENV{\\\"SECURITY_NOTIFY\\\"} || $ENV{\\\"SECURITY_NOTIFY_VERBOSE\\\"};        
#\\\\
                        print \\\"$XCS REPORT: Trapped poisoned executable 
\\\\\\\"$filen\\\\\\\"\\\\n\\\" if $ENV{\\\"SECURITY_NOTIFY\\\"} || 
$ENV{\\\"SECURITY_NOTIFY_VERBOSE\\\"};        #\\\\
                        print \\\"$XCS QUARANTINE\\\\n\\\" if 
$ENV{\\\"SECURITY_QUARANTINE\\\"};        #\\\\
                        print \\\"Content-Description: SECURITY 
WARNING\\\\n\\\\n\\\";        #\\\\
                        print $ENV{\\\"POISONED_WARNING\\\"};        #\\\\
                        last;        #\\\\
                      }        #\\\\
                    }        #\\\\
                    close(POISONED);        #\\\\
                  } else {        #\\\\
                    warn \\\" Unable to open poisoned-executables file 
\\\\\\\"$specf\\\\\\\".\\\\n\\\";        #\\\\
                  }        #\\\\
                }        #\\\\
                unless ($stripped) {        #\\\\
                  warn \\\" Mangling executable filename 
\\\\\\\"$filen\\\\\\\".\\\\n\\\";        #\\\\
                  $newfilen = $filen; $filen = quotemeta($filen);        #\\\\
                  $newfilen =~ 
s/\\\\.([-a-z0-9{}]+(\\\\?=)?)$/.${$}DEFANGED-$1/i;        #\\\\
                  $hdrtxt =~ 
s/name\\\\s*=\\\\s*\\\"?${filen}\\\"?/name=\\\"$newfilen\\\"/ig;        #\\\\
                  $mangle_mime_type = 1;        #\\\\
                }        #\\\\
              }        #\\\\
              if ($mangle_mime_type && $hdrtxt =~ /^Content-Type:\\\\s/i) {     
   #\\\\
                ($oct) = $hdrtxt =~ 
/^Content-Type:.*\\\\s(\\\\S+\\\\/\\\\S+;?)/i;        #\\\\
                warn \\\" Mangling MIME type \\\\\\\"$oct\\\\\\\".\\\\n\\\";    
    #\\\\
                unless ($oct =~ /application\\\\/octet-stream;/i) {        #\\\\
                  print \\\"$XCS original Content-Type was $oct\\\\n\\\";       
 #\\\\
                  $oct = quotemeta($oct);        #\\\\
                  $hdrtxt =~ s/${oct}/application\\\\/octet-stream;/i;        
#\\\\
                }        #\\\\
              }        #\\\\
              if ($mangle_mime_type && $hdrtxt =~ /\\\\sx-mac-\\\\S+/i) {       
 #\\\\
                $eudora = \\\"\\\";        #\\\\
                while (($eh) = $hdrtxt =~ 
/(\\\\sx-mac-\\\\S+\\\\s*=\\\\s*\\\\S+;?)/i) {        #\\\\
                  $eudora .= $eh;        #\\\\
                  $eh = quotemeta($eh);        #\\\\
                  $hdrtxt =~ s/${eh}//i;        #\\\\
                }        #\\\\
                print \\\"$XCS removed$eudora\\\\n\\\";        #\\\\
              }        #\\\\
              if (($junk) = $hdrtxt =~ 
/^Content-Type\\\\s*:\\\\s+(.{128}).{100,}$/i) {        #\\\\
                warn \\\" Truncating long Content-Type header.\\\\n\\\";        
#\\\\
                $junk =~ s/\\\"/\\\\\\\\\\\"/g;        #\\\\
                $hdrtxt = \\\"Content-Type: X-BOGUS\\\\/X-BOGUS; 
originally=\\\\\\\"$junk...\\\\\\\"\\\";        #\\\\
              } elsif (($junk) = $hdrtxt =~ 
/^Content-Description\\\\s*:\\\\s+(.{128}).{100,}$/i) {        #\\\\
                warn \\\" Truncating long Content-Description header.\\\\n\\\"; 
       #\\\\
                $hdrtxt = \\\"Content-Description: $junk...\\\";        #\\\\
              } elsif (($junk) = $hdrtxt =~ 
/^Content-[-\\\\w]+\\\\s*:\\\\s+(.{128}).{100,}$/i) {        #\\\\
                warn \\\" Truncating long MIME header.\\\\n\\\";        #\\\\
                $junk =~ s/\\\"/\\\\\\\\\\\"/g;        #\\\\
                $hdrtxt =~ s/^Content-([-\\\\w]+)\\\\s*:.*$/X-Overflow: 
Content-$1; originally=\\\"$junk...\\\"/i;        #\\\\
              }        #\\\\
              $hdrtxt =~ s/\\\\\\\\\xFF/\\\\\\\\\\\"/g;        #\\\\
              print \\\"$hdrtxt\\\\n\\\" if $hdrtxt;        #\\\\
              $hdrtxt = \\\"\\\";        #\\\\
              if (!$inmimehdr) {        #\\\\
                if ($dfrhdr) {        #\\\\
                  if ($mangle_mime_type && $dfrhdr =~ /^Content-Type:\\\\s/i) { 
       #\\\\
                    ($oct) = $dfrhdr =~ 
/^Content-Type:[^\\\\n]*\\\\s(\\\\S+\\\\/\\\\S+;?)/i;        #\\\\
                    warn \\\" Mangling MIME type 
\\\\\\\"$oct\\\\\\\".\\\\n\\\";        #\\\\
                    unless ($oct =~ /application\\\\/octet-stream;/i) {        
#\\\\
                      print \\\"$XCS original Content-Type was $oct\\\\n\\\";   
     #\\\\
                      $oct = quotemeta($oct);        #\\\\
                      $dfrhdr =~ s/${oct}/application\\\\/octet-stream;/i;      
  #\\\\
                    }        #\\\\
                  }        #\\\\
                  print $dfrhdr; $dfrhdr = \\\"\\\";        #\\\\
                }        #\\\\
                $poisoned = $mangle_mime_type = 0;        #\\\\
              }        #\\\\
            }        #\\\\
            if (/^\\\\S/) {        #\\\\
              s/\\\\s*\\\\n$//;        #\\\\
              $hdrtxt = $_;        #\\\\
              $_ = \\\"\\\";        #\\\\
              $hdrcnt++;        #\\\\
            } else {        #\\\\
              $hdrcnt = 0;        #\\\\
              $hdrtxt = \\\"\\\";        #\\\\
            }        #\\\\
          }        #\\\\
        }        #\\\\
      }        #\\\\
    \\\' 2>> $LOGFILE\\\"
procmail: Rescue of unfiltered data succeeded


------------------------------------------
〇From: \x{2664}\xABH\xACOパ扤\xA4p\xB9q\xA4l\xB6lン1.0扤扤\xB5o\xA5X...
http://www.tyes.tyc.edu.tw
mis(_at_)mail(_dot_)tyes(_dot_)tyc(_dot_)edu(_dot_)tw
_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

<Prev in Thread] Current Thread [Next in Thread>
  • Help: what is the log said, thanks....., mis <=