Skip to content

Improper Certificate Validation

Description

The `org.apache.http.impl.client.DefaultHttpClient` does not verify the hostnames upon connection, allowing an adversary to intercept sensitive information or transmit malicious data.

Examples

Insecure Code

java
new org.apache.http.impl.client.DefaultHttpClient();

Secure Code

java
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://www.example.com/")).build();
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());

Remediation

Use the new `java.net.http.HttpClient` instead of `org.apache.http.impl.client.DefaultHttpClient` to enable TLS validation.

Rule Details

FieldValue
IDCODE-0697
CategoryInsecureConfig
SeverityMEDIUM
CWECWE-295
ConfidenceHIGH
ImpactMEDIUM
LikelihoodMEDIUM
ExploitabilityMODERATE
TagsTLS validation, certificate validation
OWASPA3:2017-Sensitive Data Exposure, A02:2021-Cryptographic Failures