commit 25fbf9a: [Fix] Fix gpg parts misdetection

Vsevolod Stakhov vsevolod at highsecure.ru
Wed Jan 8 16:14:06 UTC 2020


Author: Vsevolod Stakhov
Date: 2020-01-08 16:07:47 +0000
URL: https://github.com/rspamd/rspamd/commit/25fbf9a11b80c3a7ac2ecffbbd6c35760393c7df (HEAD -> master)

[Fix] Fix gpg parts misdetection
Issue: #3205

---
 rules/misc.lua | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/rules/misc.lua b/rules/misc.lua
index 7d3682271..5dcf6ea05 100644
--- a/rules/misc.lua
+++ b/rules/misc.lua
@@ -685,12 +685,14 @@ local check_encrypted_name = rspamd_config:register_symbol{
     local function check_part(part)
       if part:is_multipart() then
         local children = part:get_children() or {}
+        local text_kids = {}
 
         for _,cld in ipairs(children) do
           if cld:is_multipart() then
             check_part(cld)
           elseif cld:is_text() then
             seen_text = true
+            text_kids[#text_kids + 1] = cld
           else
             local type,subtype,_ = cld:get_type_full()
 
@@ -712,6 +714,17 @@ local check_encrypted_name = rspamd_config:register_symbol{
               end
             end
           end
+          if seen_text and seen_encrypted then
+            -- Ensure that our seen text is not really part of pgp #3205
+            for _,tp in ipairs(text_kids) do
+              local t,_ = tp:get_type()
+              seen_text = false -- reset temporary
+              if t and t == 'text' then
+                seen_text = true
+                break
+              end
+            end
+          end
         end
       end
     end


More information about the Commits mailing list