You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by gb...@apache.org on 2018/05/11 19:44:30 UTC

svn commit: r1831443 - in /spamassassin: branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm

Author: gbechis
Date: Fri May 11 19:44:30 2018
New Revision: 1831443

URL: http://svn.apache.org/viewvc?rev=1831443&view=rev
Log:
fix fp for FORGED_GMAIL_RCVD rule

Modified:
    spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm

Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm?rev=1831443&r1=1831442&r2=1831443&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm Fri May 11 19:44:30 2018
@@ -583,16 +583,25 @@ sub check_for_forged_juno_received_heade
 
 sub check_for_forged_gmail_received_headers {
   my ($self, $pms) = @_;
-  use constant GOOGLE_MESSAGE_STATE_LENGTH => 102;
+  use constant GOOGLE_MESSAGE_STATE_LENGTH_MIN => 80;
+  use constant GOOGLE_SMTP_SOURCE_LENGTH_MIN => 90;
 
   my $from = $pms->get('From:addr');
   if ($from !~ /\bgmail\.com$/i) { return 0; }
 
   my $xgms = $pms->get('X-Gm-Message-State');
+  my $xss = $pms->get('X-Google-Smtp-Source');
   my $xreceived = $pms->get('X-Received');
+  my $received = $pms->get('Received');
 
-  if (length($xgms) eq GOOGLE_MESSAGE_STATE_LENGTH) { return 0; }
   if ($xreceived =~ /by 10\.\S+ with SMTP id \S+/) { return 0; }
+  if ($received =~ /by smtp\.googlemail\.com with ESMTPSA id \S+/) {
+    return 0;
+  }
+  if ( (length($xgms) gt GOOGLE_MESSAGE_STATE_LENGTH_MIN) && 
+    (length($xss) gt GOOGLE_SMTP_SOURCE_LENGTH_MIN)) {
+      return 0;
+  }
 
   return 1;
 }

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm?rev=1831443&r1=1831442&r2=1831443&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm Fri May 11 19:44:30 2018
@@ -595,16 +595,25 @@ sub check_for_forged_juno_received_heade
 
 sub check_for_forged_gmail_received_headers {
   my ($self, $pms) = @_;
-  use constant GOOGLE_MESSAGE_STATE_LENGTH => 102;
+  use constant GOOGLE_MESSAGE_STATE_LENGTH_MIN => 80;
+  use constant GOOGLE_SMTP_SOURCE_LENGTH_MIN => 90;
 
   my $from = $pms->get('From:addr');
   if ($from !~ /\bgmail\.com$/i) { return 0; }
 
   my $xgms = $pms->get('X-Gm-Message-State');
+  my $xss = $pms->get('X-Google-Smtp-Source');
   my $xreceived = $pms->get('X-Received');
+  my $received = $pms->get('Received');
 
-  if (length($xgms) eq GOOGLE_MESSAGE_STATE_LENGTH) { return 0; }
   if ($xreceived =~ /by 10\.\S+ with SMTP id \S+/) { return 0; }
+  if ($received =~ /by smtp\.googlemail\.com with ESMTPSA id \S+/) {
+    return 0;
+  }
+  if ( (length($xgms) gt GOOGLE_MESSAGE_STATE_LENGTH_MIN) && 
+    (length($xss) gt GOOGLE_SMTP_SOURCE_LENGTH_MIN)) {
+      return 0;
+  }
 
   return 1;
 }