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

            Bug ID: 8214
           Summary: __HAS_ANY_URI matches non-URI
           Product: Spamassassin
           Version: 3.4.6
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: spamassassin
          Assignee: dev@spamassassin.apache.org
          Reporter: apache-bugzi...@robert-scheck.de
  Target Milestone: Undefined

As of writing, the rule SCC_BODY_URI_ONLY matches for the e-mail below:

--- 8< ---
Return-Path: <contact-f...@example.net>
Received: by web-29.example.net (Postfix, from userid 1013)
        id E3D2321DC6; Tue, 30 Jan 2024 15:08:25 +0100 (CET)
Reply-To: John Doe <john....@example.com>
To: i...@example.net
Subject: Contact form request via example.net
From: Website <contact-f...@example.net>
Message-ID: <c9953f87b75e3b5097036830b12ef...@example.net>
MIME-Version: 1.0
Date: Tue, 30 Jan 2024 15:08:25 +0100
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Name: John Doe
Company: ACME Ltd.
Telephone: +00000000000
E-Mail: john....@example.com
Your message: Dear Sir/Madam,
We are interested in your product ABC.
Please send us more details and photos.
Kind regards,
John Doe/ACME
--- 8< ---

When tracking this down (72_active.cf), it looks like this:


meta    SCC_BODY_URI_ONLY            T_SCC_BODY_TEXT_LINE < 2 && __HAS_ANY_URI
&& !__SMIME_MESSAGE
meta    T_SCC_BODY_TEXT_LINE         __SCC_BODY_TEXT_LINE_FULL -
__SCC_SUBJECT_HAS_NON_SPACE
tflags  T_SCC_BODY_TEXT_LINE         nice
body    __SCC_BODY_TEXT_LINE_FULL    /^\s*\S/
tflags  __SCC_BODY_TEXT_LINE_FULL    multiple maxhits=3
header  __SCC_SUBJECT_HAS_NON_SPACE  Subject =~ /\S/
uri     __HAS_ANY_URI                /^\w+:\/\//

Astonishingly, __HAS_ANY_URI matches, and replacing "example.net" by
"exampleXnet" no longer leads to a match. Aside, I'm not really sure why
T_SCC_BODY_TEXT_LINE is lower than 2, given the e-mail has multiple lines (I
somehow remember that body lines are concatenated first, then body rules are
applied?).

Why does __HAS_ANY_URI match a non-URI (according to my understanding of RFC
3986), such as example.net?

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

Reply via email to