Java


JAVA.INSEC.HIC : Hostname in Condition (Java)

Summary

A host name is used in a condition.

Properties

Class Name Hostname in Condition (Java)
Significance security
Mnemonic JAVA.INSEC.HIC
Categories
CWE CWE:287 Improper Authentication
OWASP-2017 OWASP-2017:A2 Broken authentication
OWASP-2021 OWASP-2021:A7 Identification and authorization failures
Availability Available for Java only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Hostname in Condition (Java)"

Example

import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class Authentication {

  public static void main(String[] args) throws UnknownHostException {
    boolean found = false;
    InetAddress[] addrs = Inet6Address.getAllByName("www.juliasoft.com");
    for (InetAddress addr: addrs) {
      if (addr.getCanonicalHostName().equals("231.13.35.1"))       // "Hostname in Condition (Java)" warning issued here 
        found = true;
      else if ("112.34.5.103".equals(addr.getCanonicalHostName())) // "Hostname in Condition (Java)" warning issued here 
        found = true;

      found |= addr.getCanonicalHostName().startsWith("131.");     // "Hostname in Condition (Java)" warning issued here 
    }

    if (found)
      System.out.println("OK");
  }
}

Resolution

Check if the warning actually corresponds to a real security issue related to authentication and, if that is the case, use a more secure authentication procedure.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.