Hello,
I've found this issue too.
With the default cPanel configuration(setup) you are able to connect to localhost port 25 and send the messages without authentification.
Usually it's used along with server hostname in the from field.
Code:
[18:04] [server1 etc] # telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220-server1.xxx.tld ESMTP Exim 4.69 #1 Wed, 02 Dec 2009 18:04:35 -0500
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
helo server1.xxx.tld
250 server1.xxx.tld Hello localhost [127.0.0.1]
mail from: <support@server1.xxx.tld>
250 OK
rcpt to: <ard@xyy.tld>
250 Accepted
data
354 Enter message, ending with "." on a line by itself
Subject: Testing spam!!!
SPAMMED.
.
250 OK id=1NFyG5-0006t1-BZ
quit
221 server1.xxx.tld closing connection
Connection closed by foreign host.
And such messages are accepted and set to external addresses. This can be stopped by removing main domain from /etc/localdomains or by adding deny acl for the following conditions:
Code:
hosts = 127.0.0.1
condition = ${if match_domain{$sender_address_domain}{${primary_hostname}}{yes}{no}}
However this does not protect from use of the other domains owned by the other users. So anyone who will find what domains are hosted on the server will be able to send spam on behalf of that users.
Enable authentification on localhost? Changes in the /etc/exim.conf are not persistent. Also can authentification create issues for the other services?