CVE-2014-3577 Improper Verification of Cryptographic Signature in org.apache.httpcomponents:httpclient
Man-in-the-middle attackers can spoof SSL servers by exploiting improper hostname verification in Apache HttpComponents HttpClient.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2014-3577?
CVE-2014-3577 is a medium-severity vulnerability in n/a, published on 21 Aug 2014. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
org.apache.http.conn.ssl.AbstractVerifier in Apache HttpComponents HttpClient before 4.3.5 and HttpAsyncClient before 4.0.2 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 "CN=" string in a field in the distinguished name (DN) of a certificate, as demonstrated by the "foo,CN=www.apache.org" string in the O field.
Which versions are affected by CVE-2014-3577?
2 open source packages ship an affected version, including org.apache.httpcomponents:httpclient. It affects 2 products.
| Package | Affected | Fixed in |
|---|---|---|
org.apache.httpcomponents:httpclient Maven | All versions | 4.3.5 |
org.apache.httpcomponents:httpclient Maven | All versions | 4.3.5 |
Linux distribution packages (38)
jakarta-commons-httpclient Red Hat:enterprise_linux:5::client | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:5::client | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient Red Hat:enterprise_linux:5::client_workstation | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:5::client_workstation | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:5::client_workstation | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:5::client_workstation | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:5::client_workstation | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient Red Hat:enterprise_linux:5::server | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:5::server | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:5::server | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:5::server | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:5::server | All versions | 1:3.0-7jpp.4.el5_10 |
jakarta-commons-httpclient Red Hat:enterprise_linux:6::client | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:6::client | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:6::client | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:6::client | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:6::client | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient Red Hat:enterprise_linux:6::computenode | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:6::computenode | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:6::computenode | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:6::computenode | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:6::computenode | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient Red Hat:enterprise_linux:6::server | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:6::server | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:6::server | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:6::server | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:6::server | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient Red Hat:enterprise_linux:6::workstation | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-debuginfo Red Hat:enterprise_linux:6::workstation | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:6::workstation | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:6::workstation | All versions | 1:3.1-0.9.el6_5 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:6::workstation | All versions | 1:3.1-0.9.el6_5 |
httpcomponents-client Red Hat:enterprise_linux:7::client | All versions | 0:4.2.5-5.el7_0 |
httpcomponents-client-javadoc Red Hat:enterprise_linux:7::client | All versions | 0:4.2.5-5.el7_0 |
jakarta-commons-httpclient Red Hat:enterprise_linux:7::client | All versions | 1:3.1-16.el7_0 |
jakarta-commons-httpclient-demo Red Hat:enterprise_linux:7::client | All versions | 1:3.1-16.el7_0 |
jakarta-commons-httpclient-javadoc Red Hat:enterprise_linux:7::client | All versions | 1:3.1-16.el7_0 |
jakarta-commons-httpclient-manual Red Hat:enterprise_linux:7::client | All versions | 1:3.1-16.el7_0 |
Products include Apache Httpasyncclient, Apache Httpclient.
How do I fix CVE-2014-3577?
Upgrade org.apache.httpcomponents:httpclient to 4.3.5 or later.
Is CVE-2014-3577 being exploited?
There is no known exploitation of CVE-2014-3577 in the wild and no public exploit code.
Sources
Also known as DEBIAN-CVE-2014-3577, GHSA-cfh5-3ghh-wfjx, RHSA-2014:1082, RHSA-2014:1146, RHSA-2014:1166, UBUNTU-CVE-2014-3577.