blob: cebf614e5c7c5e36de537beab59184d0ea23473c [file]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<document>
<properties>
<title>Apache James Server 3 - Security</title>
</properties>
<body>
<section name="SMTP Security">
<p>Apache James Server is configured by default to avoid being an SMTP open-relay.</p>
<p>SMTP Auth and "Verify Identity" options are enabled when you install James (<a href="config-smtp-lmtp.html">read more</a>).</p>
<p>SMTP outgoing traffic can be transmitted via SSL by default. Check <a href="https://james.apache.org/server/3/dev-provided-mailets.html#RemoteDelivery">RemoteDelivery</a> documentation for
further explanations.</p>
</section>
<section name="Encryption Security">
<p>Apache James Server supports SSL/TLS (<a href="config-ssl-tls.html">read more</a>).</p>
</section>
<section name="User Credential Security">
<p>Apache James Server supports different user storage (<a href="config-users.html">read more</a>).</p>
</section>
<section name="JMX">
<p><b>Disclaimer: </b> JMX poses several security concerns and had been leveraged to conduct arbitrary code execution.
This threat is mitigated by not allowing remote connections to JMX, setting up authentication and pre-authentication filters.
However, we recommend to either run James in isolation (docker / own virtual machine) or disable JMX altogether.<br/>
James JMX endpoint provides command line utilities and exposes a few metrics, also available on the metric endpoint.</p>
</section>
<section name="Reported vulnerabilities">
<subsection name="Reporting vulnerabilities">
We follow the standard procedures within the ASF regarding
<a href="https://apache.org/security/committers.html#vulnerability-handling">vulnerability handling</a>.
</subsection>
<subsection name="CVE-2024-37358: Denial of service through the use of IMAP literals">
<p> Apache James prior to versions 3.8.2 or 3.7.6 allows an attacker
to trigger a denial of service by exploiting IMAP literals.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>: Update to Apache James 3.8.2 or 3.7.6 onward.</p>
</subsection>
<subsection name="CVE-2024-45626: Denial of service through JMAP HTML to text conversion">
<p> Apache James prior to versions 3.8.2 or 3.7.6 allows logged in attacker
to trigger a denial of service by exploiting html to text conversion.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>: Update to Apache James 3.8.2 or 3.7.6 onward.</p>
</subsection>
<subsection name="CVE-2024-21742: Mime4J DOM header injection">
<p> Apache JAMES MIME4J prior to version 0.8.10 allow attackers able to specify the value of a header field to craft other header fields.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>: Release 0.8.10 rejects the use of LF inside a header field thus preventing the issue.
Upgrading to Apache James MIME4J 0.8.10 is thus advised.</p>
</subsection>
<subsection name="CVE-2023-51747: SMTP smuggling in Apache James">
<p> Apache James distribution prior to release 3.7.5 and release 3.8.1 is subject to SMTP smuggling, when used in combination
of antother vulnerable server and can result in SPF bypass, leading to email forgery.</p>
<p><b>Severity</b>: High</p>
<p><b>Mitigation</b>:
Release 3.7.5 and 3.8.1 interpret strictly the CRLF delimiter and thus prevent the issue.<br/>
Upgrading to Apache James 3.7.5 or 3.8.1 is thus advised.</p>
</subsection>
<subsection name="CVE-2023-51518: Privilege escalation via JMX pre-authentication deserialisation">
<p> Apache James distribution prior to release 3.7.5 and 3.8.1 allow privilege escalation via JMX pre-authentication deserialisation.
An attacker would need to identify a deserialization glitch before triggering an exploit.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>:We recommend turning off JMX whenever possible.<br/>
Release 3.7.5 and 3.8.1 disable deserialization on unauthencited channels.<br/>
Upgrading to Apache James 3.7.5 on 3.8.1 is thus advised.</p>
</subsection>
<subsection name="CVE-2023-26269: Privilege escalation through unauthenticated JMX">
<p> Apache James distribution prior to release 3.7.4 allows privilege escalation through the use of JMX.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>:We recommend turning on authentication on. If the CLI is unused we recommend turning JMX off.<br/>
Release 3.7.4 set up implicitly JMX authentication for Guice based products and addresses the underlying JMX exploits.<br/>
Upgrading to Apache James 3.7.4 is thus advised.</p>
</subsection>
<subsection name="CVE-2022-45935: Temporary File Information Disclosure in Apache JAMES">
<p>Apache James distribution prior to release 3.7.3 is vulnerable to a temporary File Information Disclosure.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>: We recommend to upgrade to Apache James 3.7.3 or higher, which fixes this vulnerability.</p>
</subsection>
<subsection name="CVE-2021-44228: STARTTLS command injection in Apache JAMES">
<p>Apache James distribution prior to release 3.7.3 is vulnerable to a buffering attack relying on the use of the STARTTLS command.</p>
<p>Fix of CVE-2021-38542, which solved similar problem from Apache James 3.6.1, is subject to a parser differential and do not take into account concurrent requests.</p>
<p><b>Severity</b>: Moderate</p>
<p><b>Mitigation</b>: We recommend to upgrade to Apache James 3.7.3 or higher, which fixes this vulnerability.</p>
</subsection>
<subsection name="CVE-2021-44228: Log4Shell">
<p>Apache James Spring distribution prior to release 3.6.1 is vulnerable to attacks leveraging Log4Shell.
This can be leveraged to conduct remote code execution with only SMTP access.</p>
<p><b>Severity</b>: High</p>
<p><b>Mitigation</b>: We recommend to upgrade to Apache James 3.6.1 or higher, which fixes this vulnerability.</p>
<p>Note: Guice distributions are not affected.</p>
</subsection>
<subsection name="CVE-2021-38542: Apache James vulnerable to STARTTLS command injection (IMAP and POP3)">
<p>Apache James prior to release 3.6.1 is vulnerable to a buffering attack relying on the use of the STARTTLS
command. This can result in Man-in -the-middle command injection attacks, leading potentially to leakage
of sensible information.</p>
<p><b>Severity</b>: Moderate</p>
<p>This issue is being tracked as <a href="https://issues.apache.org/jira/browse/JAMES-1862">JAMES-1862</a></p>
<p><b>Mitigation</b>: We recommend to upgrade to Apache James 3.6.1, which fixes this vulnerability.</p>
<p>Furthermore, we recommend, if possible to dis-activate STARTTLS and rely solely on explicit TLS for mail protocols, including SMTP, IMAP and POP3.</p>
<p>Read more <a href="https://nostarttls.secvuln.info/">about STARTTLS security here</a>.</p>
</subsection>
<subsection name="CVE-2021-40110: Apache James IMAP vulnerable to a ReDoS">
<p>Using Jazzer fuzzer, we identified that an IMAP user can craft IMAP LIST commands to orchestrate a Denial
Of Service using a vulnerable Regular expression. This affected Apache James prior to 3.6.1</p>
<p><b>Severity</b>: Moderate</p>
<p>This issue is being tracked as <a href="https://issues.apache.org/jira/browse/JAMES-3635">JAMES-3635</a></p>
<p><b>Mitigation</b>: We recommend to upgrade to Apache James 3.6.1, which enforce the use of RE2J regular
expression engine to execute regex in linear time without back-tracking.</p>
</subsection>
<subsection name="CVE-2021-40111: Apache James IMAP parsing Denial Of Service">
<p>While fuzzing with Jazzer the IMAP parsing stack we discover that crafted APPEND and STATUS IMAP command
could be used to trigger infinite loops resulting in expensive CPU computations and OutOfMemory exceptions.
This can be used for a Denial Of Service attack. The IMAP user needs to be authenticated to exploit this
vulnerability. This affected Apache James prior to version 3.6.1.</p>
<p><b>Severity</b>: Moderate</p>
<p>This issue is being tracked as <a href="https://issues.apache.org/jira/browse/JAMES-3634">JAMES-3634</a></p>
<p><b>Mitigation</b>: We recommend to upgrade to Apache James 3.6.1, which enforce the use of RE2J regular
expression engine to execute regex in linear time without back-tracking.</p>
</subsection>
<subsection name="CVE-2021-40525: Apache James: Sieve file storage vulnerable to path traversal attacks ">
<p>Apache James ManagedSieve implementation alongside with the file storage for sieve scripts is vulnerable
to path traversal, allowing reading and writing any file. </p>
<p><b>Severity</b>: Moderate</p>
<p>This issue is being tracked as <a href="https://issues.apache.org/jira/browse/JAMES-3646">JAMES-3646</a></p>
<p><b>Mitigation</b>:This vulnerability had been patched in Apache
James 3.6.1 and higher. We recommend the upgrade.<br/><br/>
This could also be mitigated by ensuring manageSieve is disabled, which is the case by default.<br/><br/>
Distributed and Cassandra based products are also not impacted.</p>
</subsection>
<subsection name="CVE-2017-12628 Priviledge escalation using JMX">
<p>The Apache James Server prior version 3.0.1 is vulnerable to Java deserialization issues.</p>
<p>One can use this for privilege escalation.</p>
<p>This issue can be mitigated by:</p>
<ul>
<li>Upgrading to James 3.0.1 onward</li>
<li>Using a recent JRE (Exploit could not be reproduced on OpenJdk 8 u141)</li>
<li>Exposing JMX socket only to localhost (default behaviour)</li>
<li>Possibly running James in a container</li>
<li>Disabling JMX all-together (Guice only)</li>
</ul>
<p>Read more <a href="http://james.apache.org//james/update/2017/10/20/james-3.0.1.html">here</a>.</p>
</subsection>
</section>
</body>
</document>