logo

Database

Java Noop Hostname Verifier Used

Description

Detects when SSL/TLS hostname verification is disabled by using a permissive hostname verifier implementation. This creates a serious security vulnerability by accepting any hostname presented in SSL certificates as valid, making the application susceptible to man-in-the-middle attacks.

Weakness:

350 - Insecure digital certificates - Chain of trust

Category: Access Subversion

Detection Strategy

    • Identifies method calls to 'setSSLHostnameVerifier' or 'setHostnameVerifier'

    • Checks if the hostname verifier implementation is empty or accepts all hosts without validation

    • Flags instances where SSL certificate hostname checking is effectively disabled

    • Reports vulnerability when a permissive hostname verifier is used that bypasses proper certificate validation

Vulnerable code example

import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.HttpClients;
import javax.net.ssl.SSLSocketFactory;

public class InsecureSSLConfig {
    public void createInsecureHttpClient() {
        // Vulnerable: Disables hostname verification, allowing MitM attacks
        var httpClient = HttpClients.custom()...

✅ Secure code example

import org.apache.http.conn.ssl.DefaultHostnameVerifier;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import javax.net.ssl.SSLContext;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;

public class SecureSSLConfig {
    public void createSecureHttpClient() {...