GitHub Advisoryadvisory · Maven

GHSA-jc7r-v6fg-2gpf Apache CXF TLS hostname verification does not work correctly with com.sun.net.ssl.*

HIGH Published 2018-10-19 Modified 2025-05-29 Official page ↗
Aliases
CVE-2018-8039
Ecosystem
Maven
Packages
org.apache.cxf:cxf-rt-transports-http, org.apache.cxf:apache-cxf
Severity
High
CVSS vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-755
Reviewed
2020-06-16

Affected packages

• Maven org.apache.cxf:cxf-rt-transports-http: >= 3.2.0, < 3.2.5 → fixed in 3.2.5 • Maven org.apache.cxf:cxf-rt-transports-http: < 3.1.16 → fixed in 3.1.16 • Maven org.apache.cxf:apache-cxf: >= 3.2.0, < 3.2.5 → fixed in 3.2.5 • Maven org.apache.cxf:apache-cxf: < 3.1.16 → fixed in 3.1.16

Description

It is possible to configure Apache CXF to use the com.sun.net.ssl implementation via 'System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");'. When this system property is set, CXF uses some reflection to try to make the HostnameVerifier work with the old com.sun.net.ssl.HostnameVerifier interface. However, the default HostnameVerifier implementation in CXF does not implement the method in this interface, and an exception is thrown. However, in Apache CXF prior to 3.2.5 and 3.1.16 the exception is caught in the reflection code and not properly propagated. What this means is that if you are using the com.sun.net.ssl stack with CXF, an error with TLS hostname verification will not be thrown, leaving a CXF client subject to man-in-the-middle attacks.

Related

Alias · CVE (1)

  • CVE-2018-8039 It is possible to configure Apache CXF to use the com.sun.net.ssl implementation via 'System.setProperty("java.protocol.handler.pkgs",… vulnerability

Weakness · CWE (1)

  • CWE-755 Improper Handling of Exceptional Conditions weakness

References