https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8415

            Bug ID: 8415
           Summary: FreeMail plugin strips addresses from the shared
                    rendered body array, corrupting body rules that run
                    after it
           Product: Spamassassin
           Version: 4.0.2
          Hardware: PC
                OS: Mac OS X
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Plugins
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: Undefined

FreeMail::_parse_body() harvests addresses from the body and, before
scanning, blanks out addresses it doesn't want to count. That's reasonable,
but it does it in place on the array returned by
get_decoded_stripped_body_text_array(), which is the message's *cached*
rendered body. "foreach (@$body)" aliases $_ to the live elements, so the
s/// calls permanently rewrite the body for every rule that runs afterward.

Net effect: any body rule evaluated after FreeMail sees a corrupted body.
Three things are destroyed: addresses in <>; bare addresses followed by a
short lowercase word and a colon, *along with that trailing word*; and any
URL containing @ or %40. Forwarded mail is hit the hardest.

Examples:

From: Jane Doe <[email protected]>      ->  From: Jane Doe
To: [email protected] Subject: hi       ->  To:   hi
On Mon, [email protected] wrote:        ->  On Mon,

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to