Múltiples vulnerabilidades en FreeBSD

Los usuarios de soluciones FreeBSD tienen a su disposición soluciones efectivas a dos problemas de seguridad aparecidos recientemente, que explotados con éxito podrían permitir la realización de ataques de denegación de servicio y la revelación de información sensible.

FreeBSD es un sistema operativo de alta calidad diseñado para sistemas x86, con soporte para arquitecturas amd64, Alpha/AXP, IA-64, PC-98 y UltraSPARC. Existen ramas de desarrollo experimental para abastecer equipos con otras arquitecturas, como ARM, MIPS, y PPC.

FreeBSD es un sistema derivado del UNIX desarrollado por la Universidad de Berkeley, aquel 4.4BSD-Lite desarrollado por el Computer Systems Research Group (CSRG). Este sistema multiusuario y multitarea por apropiación, es compatible con los estándares POSIX, e incluye además del kernel, un completo sistema de ficheros y utilidades adicionales para dar servicios a sus usuarios. Sus orígenes se remontan a 1993, con las nomenclaturas “386BSD 0.5” y “386BSD Interim”, ya que sus autores, Jordan Hubbard, Nate Williams y Rod Grimes, pretendían derivar una versión del 386BSD para mitigar diversos problemas técnicos y someter al producto a mejoras para sus labores de investigación.

Los problemas documentados son, en esencia, dos. El primero de ellos está causado por un error en la gestión de fragmentos IP en el componente de filtrado “pf”. Una secuencia maliciosa especialmente preparada de paquetes fragmentados IP podría provocar pánico en el kernel, con las consecuentes denegaciones de servicio. El fallo se ha verificado en todos los sistemas FreeBSD versiones 5.3, 5.4 y 6.0 que tengan “pf” en uso con reglas temáticas del tipo “scrub fragment crop” y “scrub fragment drop-ovl”. Esta condición atenuante convierte el problema en moderadamente crítico.

El segundo problema es de criticidad leve, y ha sido documentado en las versiones 5.4-STABLE y 6.0. Explotable solamente a nivel local, los sistemas sin corregir podrían facilitar la revelación de información sensible. Ambos problemas están debidos a errores de diseño en el mecanismo ioctl, utilizado para el control de flujo de entrada y salida a dispositivos, es posible a causa del error descrito, que el contenido de la memoria se copie a búferes del espacio de usuario. La memoria podría contener información sensible, como claves. Este mismo componente tiene también un comportamiento anómalo a la hora de calcular tamaños de búfer, lo que podría igualmente ser aprovechado para volcar contenidos de memoria a búferes del espacio de usuario, siendo factible que los volcados contengan información sensible, como en el caso anterior.

La solución a estos problemas pasa por la actualización, la cual animamos a ejecutar desde estas líneas.