CVE-2018-8039
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.
How to fix
- apache cxf3.1.16, 3.2.5 or later
- org.apache.cxf:cxf-rt-transports-http3.2.5, 3.1.16 or later
- org.apache.cxf:apache-cxf3.2.5, 3.1.16 or later
- access.redhat.com/errata/RHSA-2018:2428
- access.redhat.com/errata/RHSA-2018:3817
- access.redhat.com/errata/RHSA-2018:2643
- access.redhat.com/errata/RHSA-2018:2279
- access.redhat.com/errata/RHSA-2018:2424
- access.redhat.com/errata/RHSA-2018:2276
- access.redhat.com/errata/RHSA-2018:2423
- access.redhat.com/errata/RHSA-2018:2425
- access.redhat.com/errata/RHSA-2018:2277
- access.redhat.com/errata/RHSA-2018:3768
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| apache cxf | v < 3.1.16, 3.2.0 ≤ v < 3.2.5 | 3.1.16, 3.2.5 |
| redhat jboss_enterprise_application_platform | 7.1.0 | — |
| org.apache.cxf:cxf-rt-transports-httpMaven | 3.2.0 ≤ v < 3.2.5, v < 3.1.16 | 3.2.5, 3.1.16 |
| org.apache.cxf:apache-cxfMaven | 3.2.0 ≤ v < 3.2.5, v < 3.1.16 | 3.2.5, 3.1.16 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.