Closed Bug 1681946 Opened 4 years ago Closed 3 years ago

autoconfig testing SMTP protocol violation: pipelining before advertisement

Categories

(Thunderbird :: Account Manager, defect)

defect

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 538809

People

(Reporter: grin, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0

Steps to reproduce:

[[component: network:SMTP]]

Adding a new account starts the testing wizard. It tests SMTP port:auto tls:auto. There are various problems:

  1. TB connects to SMTP, waits for greeting (I am not sure about that, if not that would be another protocol violation), then sends "EHLO we-guess.mozilla.org\nQUIT\n".

This is SMTP protocol violation since you cannot use PIPELINING unless it has been advertised to you, in response to EHLO. (This triggers "554 synchronization error" from exim and probably similar from postfix, unless hacked to accept invalid protocol order, which is counter-productive against spam.)

  1. Detection, probably connected to #1 is extremely random. I have seen:
  • port:25 tls:none
  • port:587 tls:none
  • port:587 tls:starttls
  • error
    Also ReTesting the already detected combo may result error (about 70% probability by feeling).

Actual results:

Mostly errors (smtp protocol violation 5xx error from smtp server) and the detection fails. Sometimes port misdetected or TLS misdetected.

Expected results:

No SMTP protocol violation, eg: EHLO | waiting for reply, also getting proper PIPELINING and STARTTLS support right | QUIT

Properly detecting port:587, tls:starttls in my case.

(Also I see bug#832457 was closed as a duplicate of a seemingly unrelated one, so I would like to note that this is not the duplicate of #647761. Also I have found no related and already reported issue, but I may have overloked some.)

Component: Untriaged → Account Manager
Summary: testing SMTP protocol violation: pipelining before advertisement → autoconfig testing SMTP protocol violation: pipelining before advertisement

Sounds like DUP of bug 538809?

Please note that this is not intended to be a full SMTP implementation. We're just trying to determine whether there is a SMTP server on that port, and what the CAPs are, that's all.

This is SMTP protocol violation since you cannot use PIPELINING

I don't understand what the actual bug is. We don't do pipelining. We just send the commands, that's all.

What is the actual protocol exchange, and what is the expected one?

Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE

(In reply to Ben Bucksch (:BenB) from comment #2)

I don't understand what the actual bug is. We don't do pipelining. We just send the commands, that's all.

Do you know what pipelining is, right? When you send a command and do not wait for the response before sending the next command that is pipelining. You can't do that without the PIPELINING feature active since it is - as mentioned - an SMTP protocol violation.

You need to log in before you can comment on or make changes to this bug.