¿Java es vulnerable a la vulnerabilidad de GHOST de glibc en Linux?

10

Veo en nuestra plataforma RedHat Linux que el proceso "java" depende de la biblioteca glibc:

[root@hpproliant1 ~]# ldd /usr/bin/java
linux-gate.so.1 =>  (0xffffe000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf7f77000)
libjli.so => /usr/java/32bit/jre1.6.0_26/bin/../lib/i386/jli/libjli.so (0xf7f6e000)
libdl.so.2 => /lib/libdl.so.2 (0xf7f69000)
libc.so.6 => /lib/libc.so.6 (0xf7e11000)
/lib/ld-linux.so.2 (0xf7f97000)

¿Las API de Java llaman funciones glibc indirectamente problemáticas? Si es así, ¿está la JVM utilizando la función vulnerable de una manera que es vulnerable?

    
pregunta Mert Z. 30.01.2015 - 19:55
fuente

1 respuesta

6

Posiblemente.

Las dos funciones que son vulnerables en glibc son gethostbyname y gethostbyname2. Notaste que java está vinculado a glibc, pero para ser posible que sea vulnerable tiene que vincularse a estas funciones específicas.

Es posible escanear el binario de ELF y buscar en las bibliotecas vinculadas con el programa readelf.

Recientemente se descubrió que procmail es vulnerable, verifiquemos que este enfoque funciona con un programa vulnerable conocido.

readelf --dyn-syms /usr/bin/procmail |grep gethostbyname
    46: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND gethostbyname@GLIBC_2.2.5 (2

¡Y lo hace!

Si puedes usar el ejecutable jvm, no encontrarás referencias para obtener el nombre de host.

Si escaneas las bibliotecas incluidas con java, harás lo siguiente:

readelf --dyn-sym libdt_socket.so |grep gethostbyname
    19: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND gethostbyname@GLIBC_2.2.5 (4)

Si esto es explotable o no requiere un análisis adicional. Pero hasta que se demuestre lo contrario, debes actualizar tu biblioteca glibc.

    
respondido por el Steve Sether 31.01.2015 - 00:11
fuente

Lea otras preguntas en las etiquetas