roehling / postsrsd

Postfix Sender Rewriting Scheme daemon
324 stars 39 forks source link

550 Invalid sender address (in reply to MAIL FROM command) #103

Closed bhollosi-open closed 4 years ago

bhollosi-open commented 4 years ago

Hi,

Some MTA servers responds SMTP Invalid sender address (in reply to MAIL FROM command), if the SMTP mail from contains '/' slash character. Is it possible not to use slash character in SRS.

I use postsrsd 1.4 on Debian 9.

Example:

> telnet 62.112.192.40 25

Trying 62.112.192.40... Connected to 62.112.192.40. Escape character is '^]'. 220 avgw.enternet.hu ESMTP Exim 4 Fri, 03 Apr 2020 14:38:51 +0200 ehlo mail.opennet.hu 250-avgw.enternet.hu Hello mail.opennet.hu [91.223.222.53] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250 HELP mail from: SRS0=mLwe=5P=test@opennet.hu 250 OK

> telnet 62.112.192.40 25

Trying 62.112.192.40... Connected to 62.112.192.40. Escape character is '^]'. 220 avgw.enternet.hu ESMTP Exim 4 Fri, 03 Apr 2020 14:40:15 +0200 ehlo mail.opennet.hu
250-avgw.enternet.hu Hello mail.opennet.hu [91.223.222.53] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250 HELP mail from:SRS0=mL/e=5P=test@opennet.hu 550 Invalid sender address 421 avgw.enternet.hu: SMTP command timeout - closing connection Connection closed by foreign host.

Best Regards.

roehling commented 4 years ago

The slash is part of the base64 encoding of the signature that prevents the spoofing of rewritten addresses. According to RFC 5322, a slash is a valid local-part character and should be accepted as sender address, so the behavior exhibited above is a protocol violation that should be reported to the server admin.

Theoretically, I could replace the slash by a different character in the base64 alphabet, but I seriously doubt that any of the remaining valid characters is more likely to be accepted than slashes (curly braces, anyone?)

Therefore, I'm closing this issue.