blob: 1a375a242b5a03012805b362b91909edaef31ea5 [file] [log] [blame] [view]
# Maven Security
<!--
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.
-->
## Security Model
The purpose of Maven is to perform the actions defined in the supplied
`pom.xml`, which commonly includes compiling and running the associated
code and using plugins and dependencies downloaded from the configured
repositories.
As such, the Maven security model assumes you trust the `pom.xml` and
the code, dependencies and repositories that are used in your build.
If you want to use Maven to build untrusted code, it is up to you to
provide the required isolation.
## Security Vulnerabilities
Please note that binary patches are not produced for individual
vulnerabilities. To obtain the binary fix for a particular vulnerability
you should upgrade to an Apache Maven version where that vulnerability
has been fixed.
For more information about reporting vulnerabilities, see the [Apache
Security Team](https://www.apache.org/security/) page.
### CVE-2021-26291 Apache Maven 3.8.1
Severity: Medium
Vendor: The Apache Software Foundation
Versions Affected:
- Apache Maven 3.6.3 and earlier
Description: More and more repositories use HTTPS nowadays, but this hasn't always been the case. This means that Maven Central contains POMs with custom repositories that refer to a URL over HTTP.
This makes downloads via such repository a target for a MITM attack.
At the same time, developers are probably not aware that for some downloads an insecure URL is being used.
Because uploaded POMs to Maven Central are immutable, a change for Maven was required.
To solve this, we extended the mirror configuration with `<blocked>` parameter,
and we added a new `external:http:*` mirror selector (like existing `external:*`), meaning "any external URL using HTTP".\
The decision was made to block such external HTTP repositories by default: this is done by providing a mirror in the `conf/settings.xml` blocking insecure HTTP external URLs.
Note: this is a vulnerability in case you're connectioning directly to remote repositories instead of using an artifact repository manager.
### Maven Dependency, EAR, Javadoc, WAR and Plugin Plugins
Severity: Low
Vendor: The Apache Software Foundation
Versions Affected:
- Maven Dependency Plugin 3.1.0 and earlier
- Maven EAR Plugin 3.0.0 and earlier
- Maven Javadoc Plugin 2.5 to 3.0.0
- Maven WAR Plugin 2.1-alpha-1 to 3.2.0
- Maven Plugin Plugin 3.0 to 3.5.1
Description: As part of a broader research, the Snyk Security Research Team discovered
an arbitrary file write generic vulnerability, that can be achieved using a
specially crafted zip (or bzip2, gzip, tar, xz, war) archive, that holds
path traversal filenames. So when the filename gets concatenated to the
target extraction directory, if the extraction tool used does not make
sufficient checks, the final path ends up outside of the target directory.
The affected plugins use plexus-archiver to unpack dependencies to disk
and have been identified as potential triggers for exposing the vulnerability
if dependencies are compromised.
See [full description](./security-plexus-archiver.html) for more details.
Credit: This issue was identified by the Snyk Security Research Team
### CVE-2013-0253 Apache Maven 3.0.4
Severity: Medium
Vendor: The Apache Software Foundation
Versions Affected:
- Apache Maven 3.0.4
- Apache Maven Wagon 2.1, 2.2, 2.3
Description: Apache Maven 3.0.4 (with Apache Maven Wagon 2.1) has
introduced a non-secure SSL mode by default. This mode disables all SSL
certificate checking, including: host name verification , date validity,
and certificate chain. Not validating the certificate introduces the
possibility of a man-in-the-middle attack.
[CVE-2013-0253](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0253)
All users are recommended to upgrade to [Apache Maven
3.0.5](./download.cgi) and Apache Maven Wagon 2.4.
Credit: This issue was identified by Graham Leggett
### CVE-2012-6153 Apache Maven Wagon :: WebDAV Provider
Severity: Medium
Vendor: The Apache Software Foundation
Versions Affected:
- Apache Maven Wagon WebDAV Provider 2.12 and earlier
Description: http/conn/ssl/AbstractVerifier.java in Apache Commons HttpClient
before 4.2.3 does not properly verify that the server hostname matches a
domain name in the subject's Common Name (CN) or subjectAltName field of the
X.509 certificate, which allows man-in-the-middle attackers to spoof SSL
servers via a certificate with a subject that specifies a common name in a
field that is not the CN field.
[CVE-2012-6153](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6153)
Users of this provider are recommended to upgrade to [Apache Maven Wagon ::
WebDAV Provider 3.0.0](./download.cgi)