CVE-2012-5783
NoneCVSS
—
EPSS
9.2%
Published
Nov 4, 2012
CISA due date
—
Cloudanix analysis
Software that talks to other systems over secure web connections may silently accept fake server identities, letting attackers read or change the information being exchanged.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The HttpClient library skips hostname verification against the X.509 certificate's CN or subjectAltName, permitting an attacker-supplied certificate to be accepted during TLS handshakes.
Why it matters to the business
Organizations using affected versions risk interception or tampering of sensitive data in transit, which can result in credential theft, financial fraud, or regulatory exposure.
How an attack unfolds
An attacker on the network path intercepts the client's outbound TLS connection, presents any valid certificate whose subject does not match the target hostname, and the library accepts the connection without verification, allowing decryption and modification of traffic.
How to fix it
Upgrade Apache Commons HttpClient to a version that performs proper hostname verification (4.x series or later maintained forks) and rebuild all dependent applications; where upgrades are impossible, enforce certificate pinning or migrate to a library with strict validation.
How to confirm the fix worked
Review dependency manifests and runtime classpaths for HttpClient 3.x usage, then test connections against a deliberately mismatched certificate to confirm rejection occurs after the upgrade.
Typical attack path
- Gain network position between client and intended server
- Perform ARP/DNS spoofing or transparent proxying to redirect traffic
- Present a valid but hostname-mismatched certificate during the TLS handshake
- Decrypt, inspect, or alter application data without client detection
How to detect it
Search application and system logs for outbound connections that completed without hostname-verification warnings, unexpected certificate subjects, or traffic to domains not present in the original service configuration.
What your security team should do
- Identify and inventory all applications that bundle or depend on HttpClient 3.x
- Prioritize upgrades for any components handling payment, authentication, or PII traffic
- Add dependency-scanning rules to CI pipelines to block future introduction of vulnerable versions
- Monitor outbound TLS connections for unexpected certificate chains or destinations
The record
Apache Commons HttpClient 3.x, as used in Amazon Flexible Payments Service (FPS) merchant Java SDK and other products, does not 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 an arbitrary valid certificate.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | commons-httpclient:commons-httpclient | 3.0 | No fix |
| Maven | commons-httpclient:commons-httpclient | 3.0 | 4.0 |
| Chainguard | apicurio-registry | 0 | 3.0.6-r2 |
| Chainguard | apicurio-registry | 0 | 3.0.6-r1 |
| Chainguard | apicurio-registry-nginx-config | 0 | 3.0.6-r2 |
| Chainguard | apicurio-registry-ui | 0 | 3.0.6-r2 |
| Chainguard | apicurio-registry-ui | 0 | 3.0.6-r1 |
| Chainguard | hadoop-fips-3.3.6 | 0 | 3.3.6-r15 |
| Chainguard | trino | 0 | 445-r0 |
| Chainguard | trino-config | 0 | 445-r0 |
| Chainguard | trino-oci-entrypoint | 0 | 445-r0 |
| Chainguard | trino-plugin-accumulo | 0 | 445-r0 |
| Chainguard | trino-plugin-ai-functions | 0 | 445-r0 |
| Chainguard | trino-plugin-atop | 0 | 445-r0 |
| Chainguard | trino-plugin-bigquery | 0 | 445-r0 |
| Chainguard | trino-plugin-blackhole | 0 | 445-r0 |
| Chainguard | trino-plugin-cassandra | 0 | 445-r0 |
| Chainguard | trino-plugin-clickhouse | 0 | 445-r0 |
| Chainguard | trino-plugin-delta-lake | 0 | 445-r0 |
| Chainguard | trino-plugin-druid | 0 | 445-r0 |
| Chainguard | trino-plugin-duckdb | 0 | 445-r0 |
| Chainguard | trino-plugin-elasticsearch | 0 | 445-r0 |
| Chainguard | trino-plugin-example-http | 0 | 445-r0 |
| Chainguard | trino-plugin-exasol | 0 | 445-r0 |
| Chainguard | trino-plugin-exchange-filesystem | 0 | 445-r0 |
| Chainguard | trino-plugin-exchange-hdfs | 0 | 445-r0 |
| Chainguard | trino-plugin-faker | 0 | 445-r0 |
| Chainguard | trino-plugin-functions-python | 0 | 445-r0 |
| Chainguard | trino-plugin-geospatial | 0 | 445-r0 |
| Chainguard | trino-plugin-google-sheets | 0 | 445-r0 |
| Chainguard | trino-plugin-hive | 0 | 445-r0 |
| Chainguard | trino-plugin-http-event-listener | 0 | 445-r0 |
| Chainguard | trino-plugin-http-server-event-listener | 0 | 445-r0 |
| Chainguard | trino-plugin-hudi | 0 | 445-r0 |
| Chainguard | trino-plugin-iceberg | 0 | 445-r0 |
| Chainguard | trino-plugin-ignite | 0 | 445-r0 |
| Chainguard | trino-plugin-jmx | 0 | 445-r0 |
| Chainguard | trino-plugin-kafka | 0 | 445-r0 |
| Chainguard | trino-plugin-kafka-event-listener | 0 | 445-r0 |
| Chainguard | trino-plugin-kinesis | 0 | 445-r0 |
| Chainguard | trino-plugin-kudu | 0 | 445-r0 |
| Chainguard | trino-plugin-lakehouse | 0 | 445-r0 |
| Chainguard | trino-plugin-ldap-group-provider | 0 | 445-r0 |
| Chainguard | trino-plugin-local-file | 0 | 445-r0 |
| Chainguard | trino-plugin-loki | 0 | 445-r0 |
| Chainguard | trino-plugin-mariadb | 0 | 445-r0 |
| Chainguard | trino-plugin-memory | 0 | 445-r0 |
| Chainguard | trino-plugin-ml | 0 | 445-r0 |
| Chainguard | trino-plugin-mongodb | 0 | 445-r0 |
| Chainguard | trino-plugin-mysql | 0 | 445-r0 |
| Chainguard | trino-plugin-mysql-event-listener | 0 | 445-r0 |
| Chainguard | trino-plugin-opa | 0 | 445-r0 |
| Chainguard | trino-plugin-openlineage | 0 | 445-r0 |
| Chainguard | trino-plugin-opensearch | 0 | 445-r0 |
| Chainguard | trino-plugin-oracle | 0 | 445-r0 |
| Chainguard | trino-plugin-password-authenticators | 0 | 445-r0 |
| Chainguard | trino-plugin-phoenix5 | 0 | 445-r0 |
| Chainguard | trino-plugin-pinot | 0 | 445-r0 |
| Chainguard | trino-plugin-postgresql | 0 | 445-r0 |
| Chainguard | trino-plugin-prometheus | 0 | 445-r0 |
| Chainguard | trino-plugin-ranger | 0 | 445-r0 |
| Chainguard | trino-plugin-raptor-legacy | 0 | 445-r0 |
| Chainguard | trino-plugin-redis | 0 | 445-r0 |
| Chainguard | trino-plugin-redshift | 0 | 445-r0 |
| Chainguard | trino-plugin-resource-group-managers | 0 | 445-r0 |
| Chainguard | trino-plugin-session-property-managers | 0 | 445-r0 |
| Chainguard | trino-plugin-singlestore | 0 | 445-r0 |
| Chainguard | trino-plugin-snowflake | 0 | 445-r0 |
| Chainguard | trino-plugin-spooling-filesystem | 0 | 445-r0 |
| Chainguard | trino-plugin-sqlserver | 0 | 445-r0 |
| Chainguard | trino-plugin-teradata-functions | 0 | 445-r0 |
| Chainguard | trino-plugin-thrift | 0 | 445-r0 |
| Chainguard | trino-plugin-tpcds | 0 | 445-r0 |
| Chainguard | trino-plugin-tpch | 0 | 445-r0 |
| Chainguard | trino-plugin-vertica | 0 | 445-r0 |
| Chainguard | zaproxy | 0 | 2.15.0-r2 |
| Chainguard | zaproxy | 0 | 2.16.0-r0 |
| Chainguard | zaproxy | 0 | 2.16.1-r0 |
| Debian:11 | commons-httpclient | 0 | 3.1-10.1 |
| Debian:12 | commons-httpclient | 0 | 3.1-10.1 |
| Debian:13 | commons-httpclient | 0 | 3.1-10.1 |
| Debian:14 | commons-httpclient | 0 | 3.1-10.1 |
| Debian:6.0 | commons-httpclient | 0 | 3.1-9+deb6u1 |
| Mageia:2 | jakarta-commons-httpclient | 0 | 3.1-3.1.mga2 |
| Red Hat:enterprise_linux:5::server | jakarta-commons-httpclient | 0 | 1:3.0-7jpp.2 |
| Red Hat:enterprise_linux:5::server | jakarta-commons-httpclient-debuginfo | 0 | 1:3.0-7jpp.2 |
| Red Hat:enterprise_linux:5::server | jakarta-commons-httpclient-demo | 0 | 1:3.0-7jpp.2 |
| Red Hat:enterprise_linux:5::server | jakarta-commons-httpclient-javadoc | 0 | 1:3.0-7jpp.2 |
| Red Hat:enterprise_linux:5::server | jakarta-commons-httpclient-manual | 0 | 1:3.0-7jpp.2 |
| Red Hat:enterprise_linux:6::client | jakarta-commons-httpclient | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::client | jakarta-commons-httpclient-debuginfo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::client | jakarta-commons-httpclient-demo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::client | jakarta-commons-httpclient-javadoc | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::client | jakarta-commons-httpclient-manual | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::computenode | jakarta-commons-httpclient | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::computenode | jakarta-commons-httpclient-debuginfo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::computenode | jakarta-commons-httpclient-demo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::computenode | jakarta-commons-httpclient-javadoc | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::computenode | jakarta-commons-httpclient-manual | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::server | jakarta-commons-httpclient | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::server | jakarta-commons-httpclient-debuginfo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::server | jakarta-commons-httpclient-demo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::server | jakarta-commons-httpclient-javadoc | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::server | jakarta-commons-httpclient-manual | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::workstation | jakarta-commons-httpclient | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::workstation | jakarta-commons-httpclient-debuginfo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::workstation | jakarta-commons-httpclient-demo | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::workstation | jakarta-commons-httpclient-javadoc | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:enterprise_linux:6::workstation | jakarta-commons-httpclient-manual | 0 | 1:3.1-0.7.el6_3 |
| Red Hat:jboss_enterprise_application_platform:5::el4 | jakarta-commons-httpclient | 0 | 1:3.1-2.1_patch_01.ep5.el4 |
| Red Hat:jboss_enterprise_application_platform:5::el5 | jakarta-commons-httpclient | 0 | 1:3.1-2.1_patch_01.ep5.el5 |
| Red Hat:jboss_enterprise_application_platform:5::el6 | jakarta-commons-httpclient | 0 | 1:3.1-2_patch_01.ep5.el6 |
| Red Hat:jboss_enterprise_web_platform:5::el5 | jakarta-commons-httpclient | 0 | 1:3.1-2.1_patch_01.ep5.el5 |
| Red Hat:jboss_enterprise_web_platform:5::el6 | jakarta-commons-httpclient | 0 | 1:3.1-2_patch_01.ep5.el6 |
| Red Hat:rhev_manager:3 | redhat-support-plugin-rhev | 0 | 0:3.3.0-14.el6ev |
| Ubuntu:14.04:LTS | commons-httpclient | 0 | 3.1-10.2 |
| Ubuntu:14.04:LTS | commons-httpclient | 0 | 3.1-10.2ubuntu0.14.04.1 |
| Ubuntu:14.04:LTS | httpcomponents-client | 0 | 4.3.3-1 |
| Wolfi | apicurio-registry | 0 | 3.0.6-r2 |
| Wolfi | apicurio-registry | 0 | 3.0.6-r1 |
| Wolfi | apicurio-registry-nginx-config | 0 | 3.0.6-r2 |
| Wolfi | apicurio-registry-ui | 0 | 3.0.6-r2 |
| Wolfi | apicurio-registry-ui | 0 | 3.0.6-r1 |
| Wolfi | trino | 0 | 445-r0 |
| Wolfi | trino-config | 0 | 445-r0 |
| Wolfi | trino-oci-entrypoint | 0 | 445-r0 |
| Wolfi | trino-plugin-accumulo | 0 | 445-r0 |
| Wolfi | trino-plugin-ai-functions | 0 | 445-r0 |
| Wolfi | trino-plugin-atop | 0 | 445-r0 |
| Wolfi | trino-plugin-bigquery | 0 | 445-r0 |
| Wolfi | trino-plugin-blackhole | 0 | 445-r0 |
| Wolfi | trino-plugin-cassandra | 0 | 445-r0 |
| Wolfi | trino-plugin-clickhouse | 0 | 445-r0 |
| Wolfi | trino-plugin-delta-lake | 0 | 445-r0 |
| Wolfi | trino-plugin-druid | 0 | 445-r0 |
| Wolfi | trino-plugin-duckdb | 0 | 445-r0 |
| Wolfi | trino-plugin-elasticsearch | 0 | 445-r0 |
| Wolfi | trino-plugin-example-http | 0 | 445-r0 |
| Wolfi | trino-plugin-exasol | 0 | 445-r0 |
| Wolfi | trino-plugin-exchange-filesystem | 0 | 445-r0 |
| Wolfi | trino-plugin-exchange-hdfs | 0 | 445-r0 |
| Wolfi | trino-plugin-faker | 0 | 445-r0 |
| Wolfi | trino-plugin-functions-python | 0 | 445-r0 |
| Wolfi | trino-plugin-geospatial | 0 | 445-r0 |
| Wolfi | trino-plugin-google-sheets | 0 | 445-r0 |
| Wolfi | trino-plugin-hive | 0 | 445-r0 |
| Wolfi | trino-plugin-http-event-listener | 0 | 445-r0 |
| Wolfi | trino-plugin-http-server-event-listener | 0 | 445-r0 |
| Wolfi | trino-plugin-hudi | 0 | 445-r0 |
| Wolfi | trino-plugin-iceberg | 0 | 445-r0 |
| Wolfi | trino-plugin-ignite | 0 | 445-r0 |
| Wolfi | trino-plugin-jmx | 0 | 445-r0 |
| Wolfi | trino-plugin-kafka | 0 | 445-r0 |
| Wolfi | trino-plugin-kafka-event-listener | 0 | 445-r0 |
| Wolfi | trino-plugin-kinesis | 0 | 445-r0 |
| Wolfi | trino-plugin-kudu | 0 | 445-r0 |
| Wolfi | trino-plugin-lakehouse | 0 | 445-r0 |
| Wolfi | trino-plugin-ldap-group-provider | 0 | 445-r0 |
| Wolfi | trino-plugin-local-file | 0 | 445-r0 |
| Wolfi | trino-plugin-loki | 0 | 445-r0 |
| Wolfi | trino-plugin-mariadb | 0 | 445-r0 |
| Wolfi | trino-plugin-memory | 0 | 445-r0 |
| Wolfi | trino-plugin-ml | 0 | 445-r0 |
| Wolfi | trino-plugin-mongodb | 0 | 445-r0 |
| Wolfi | trino-plugin-mysql | 0 | 445-r0 |
| Wolfi | trino-plugin-mysql-event-listener | 0 | 445-r0 |
| Wolfi | trino-plugin-opa | 0 | 445-r0 |
| Wolfi | trino-plugin-openlineage | 0 | 445-r0 |
| Wolfi | trino-plugin-opensearch | 0 | 445-r0 |
| Wolfi | trino-plugin-oracle | 0 | 445-r0 |
| Wolfi | trino-plugin-password-authenticators | 0 | 445-r0 |
| Wolfi | trino-plugin-phoenix5 | 0 | 445-r0 |
| Wolfi | trino-plugin-pinot | 0 | 445-r0 |
| Wolfi | trino-plugin-postgresql | 0 | 445-r0 |
| Wolfi | trino-plugin-prometheus | 0 | 445-r0 |
| Wolfi | trino-plugin-ranger | 0 | 445-r0 |
| Wolfi | trino-plugin-raptor-legacy | 0 | 445-r0 |
| Wolfi | trino-plugin-redis | 0 | 445-r0 |
| Wolfi | trino-plugin-redshift | 0 | 445-r0 |
| Wolfi | trino-plugin-resource-group-managers | 0 | 445-r0 |
| Wolfi | trino-plugin-session-property-managers | 0 | 445-r0 |
| Wolfi | trino-plugin-singlestore | 0 | 445-r0 |
| Wolfi | trino-plugin-snowflake | 0 | 445-r0 |
| Wolfi | trino-plugin-spooling-filesystem | 0 | 445-r0 |
| Wolfi | trino-plugin-sqlserver | 0 | 445-r0 |
| Wolfi | trino-plugin-teradata-functions | 0 | 445-r0 |
| Wolfi | trino-plugin-thrift | 0 | 445-r0 |
| Wolfi | trino-plugin-tpcds | 0 | 445-r0 |
| Wolfi | trino-plugin-tpch | 0 | 445-r0 |
| Wolfi | trino-plugin-vertica | 0 | 445-r0 |
| maven | commons-httpclient/commons-httpclient | 3.0 | No fix |
| maven | commons-httpclient/commons-httpclient | 3.0 | 4.0 |
| maven | org.apache.httpcomponents/httpclient | 3.0 | 4.0 |
| openSUSE:Tumbleweed | apache-commons-httpclient | 0 | 3.1-8.5 |
Related vulnerabilities
- CVE-2026-33871 Netty is an asynchronous, event-driven network application framework. Also affects apicurio-registry
- CVE-2026-33870 Netty is an asynchronous, event-driven network application framework. Also affects apicurio-registry
- CVE-2026-1002 The Vert.x Web static handler component cache can be manipulated to deny the access to… Also affects apicurio-registry
- CVE-2025-67735 Netty has a CRLF Injection vulnerability in io.netty.handler.codec.http.HttpRequestEncoder Also affects apicurio-registry
- CVE-2025-58056 Netty vulnerable to request smuggling due to incorrect parsing of chunk extensions Also affects apicurio-registry
- CVE-2025-58057 Netty's decoders vulnerable to DoS via zip bomb style attack Also affects apicurio-registry
- CVE-2025-55163 Netty affected by MadeYouReset HTTP/2 DDoS vulnerability Also affects apicurio-registry
- CVE-2025-53864 Connect2id Nimbus JOSE + JWT 10.0.x before 10.0.2 and 9.37.x before 9.37.4 allows a… Also affects apicurio-registry