viernes, 17 de julio de 2009

Mozilla publica parche oficial para la vulnerabilidad en Firefox 3.5

Mozilla ha publicado ya oficialmente la versión 3.5.1 que corrige el fallo en JIT que permitía la ejecución de código. El exploit fue publicado por sorpresa, cuando el equipo de desarrollo todavía no disponía de una versión corregida que ofrecer a los usuarios. Pensaban publicar la actualización a finales de julio, pero han acelerado convenientemente el proceso para emitir la nueva versión lo antes posible.

¿Pero no existía parche ya?

A raíz de la cantidad de comentarios recibidos en nuestros buzones, sobre la información publicada en la una-al-día "Ejecución de código en Mozilla Firefox. No existe parche oficial disponible", creemos necesario aclarar ciertos puntos y actualizar la información existente.

El comentario más repetido es que "sí" existía parche en el momento de la publicación de la noticia. Queremos aclarar y ratificarnos en que no existía, hasta este momento, parche oficial disponible, aclarando correctamente lo que es un parche oficial. Entendemos como "parche oficial", un método de actualización que no exija "recompilación" del software, ofrecido por el fabricante, y que haya pasado unos mínimos controles para comprobar que no introduce nuevos errores. El mismo blog de seguridad oficial de Mozilla (http://blog.mozilla.com/security/), escribía:

Status: "Mozilla developers are working on a fix for this issue and a Firefox security update will be sent out as soon as the fix is completed and tested."

Estaban trabajando en una solución. En cuanto han creído que el parche es correcto, no abre nuevos fallos y está concienzudamente comprobado, han subido a la página oficial la versión 3.5.1 para que todo el mundo pueda descargarla. La política de Firefox en este sentido es crear nuevas versiones con la solución integrada. Desde el día 13 (cuando ya se conocía el fallo) y hasta ahora, solo estaba disponible para descarga oficial la versión 3.5, vulnerable. No había parche oficial comprobado, si no, obviamente Mozilla lo habría subido como descarga pública oficial.

¿Qué tenían entonces antes de la versión 3.5.1?

Tenían la localización del problema, y un planteamiento de modificación del código para solucionar el fallo (que probablemente fuese el definitivo), en forma de archivo .diff o precompilaciones diarias inestables o versiones de desarrollo. Pero eso no es un parche oficial. Cuando existe un fallo de seguridad, y más cuando se tiene delante un exploit, la parte más "sencilla" es localizar la línea que origina el problema y programar una solución. Esto es prácticamente inmediato sea software libre o no. Lo complicado es integrar esto en una versión oficial que sea compilada y distribuida públicamente, asegurándose de que no introduce regresiones, problemas de estabilidad y que de verdad soluciona todos los vectores por los que la vulnerabilidad puede ser aprovechada. Solo este último punto puede llevar semanas. Si no se respeta este paso, se corre el riesgo de emitir constantes versiones con regresiones (un problema más común de lo que parece) e introducir inestabilidades.

En un entorno no profesional, casero, es viable aplicar un parche en forma de archivo .diff, compilar extraoficialmente y asumir los problemas potenciales que esto puede acarrear. Pero en entornos profesionales, con decenas o cientos de máquinas que administrar, no es tan sencillo. Todo debe seguir funcionando, y nadie que se tome en serio su negocio usaría versiones no estables, en desarrollo o compilaciones diarias en entornos de producción más o menos críticos. En entornos más exigentes, incluso no aplican nunca los parches oficiales nada más son publicados, sino que son todavía más cautelosos y esperan a comprobar que no introducen nuevos problemas.

También cabe recodar, que deshabilitar el origen del problema no es "solucionar" la vulnerabilidad.

Con respecto a la vulnerabilidad, aclaramos que el fallo se encuentra en en el compilador Just-in-time (JIT). La rama 3.0.x no se ve afectada.


Sergio de los Santos
ssantos@hispasec.com


Más información:

Critical JavaScript vulnerability in Firefox 3.5
http://blog.mozilla.com/security/2009/07/14/critical-javascript-vulnerability-in-firefox-35

No hay comentarios:

Publicar un comentario en la entrada