Se ha descubierto una vulnerabilidad en la implementación de la
máquina virtual Java (JVM) de la compañía Sun. Dicha vulnerabilidad
permite la creación de un applet que esquiva completamente las
restricciones del sandbox.
La vulnerabilidad se debe a que las comprobaciones del cargador de
clases no son suficientes respecto al acceso a paquetes. De hecho,
debido a un error lógico en la implementación del método loadClass de
la clase sun.applet.AppletClass, es posible cargar cualquier clase en
la máquina virtual sin tener que realizar una llamada al método
checkPagkageAcess del Security Manager.
La técnica consiste en sustituir los '.' por '/' a la hora de realizar
el nombrado dentro del árbol de un paquete. En condiciones normales,
por política estándar de seguridad, un acceso al paquete 'sun.'
provocaría una excepción de seguridad. Sin embargo, la comprobación se
hace verificando esos '.', así que debido a que de forma interna se
utiliza también el carácter '/' para acceder a diferentes partes del
árbol, se podría hacer una llamada a
'sun/paquete_arbitrario/clase_arbitraria' sin que se active el
anteriormente nombrado mecanismo de seguridad.
Esta vulnerabilidad permitiría la creación de applets maliciosos que
pueden saltarse completamente las restricciones del sandbox. Se han
realizado experimentos con códigos de 'prueba de concepto' que han
tenido éxito explotándola en navegadores como Netscape 6 y 7 (además
de Mozilla) que utilizan versiones vulnerables de dicha máquina
virtual. Las versiones vulnerables (en el SDK y JRE) son 1.4.1_03 y
anteriores, 1.3.1_08 y anteriores, y 1.2.2_015 y anteriores.
Ya que la vulnerabilidad afecta a un componente tan importante, es
conveniente reseñar que este problema puede afectar potencialmente a
todos los usuarios que utilicen este plugin en sus navegadores. Además
de los anteriormente nombrados, otros como Opera y Internet Explorer
podrían verse afectados, aunque no se ha confirmado.
La compañía Sun fue informada de este problema a principios de junio
de este año, y los ha corregido en las últimas versiones publicadas
del SDK y JRE. La dirección para descargarse una versión actualizada
del plugin para plataformas Windows, Linux, Solaris y Macintosh es la
siguiente:
http://www.java.com/es/download/manual.jsp
Más Información:A Vulnerability in JRE May Allow an Untrusted Applet to Escalate Privileges
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert/57221