Vulnerabilidad nfsd en FreeBSD 6.0

Me váis a permitir, para publicar esta nota, un «copypaste» de la fuente original, que no es otra que este boletín de «una-al-día» de Hispasec Sistemas.

freebsd beastie

Se ha descubierto un problema de importancia menor en FreeBSD que permitiría a los hipotéticos atacantes generar denegación de servicio en máquinas en las que corra este sistema operativo.

Para los lectores que desconozcan este sistema, comentar que FreeBSD es un sistema operativo libre derivado del sistema UNIX 4.4BSD-Lite, desarrollado por la Universidad de Berkeley, como resultado de un proyecto de investigación del Computer Systems Research Group (CSRG). Este sistema operativo es multiusuario y multitarea por apropiación, siendo además compatible con los estándares POSIX, e incluye además del núcleo, un completo sistema de ficheros y utilidades adicionales para dar servicios a sus usuarios. FreeBSD es multiplataforma, soportándose en la actualidad plataformas intel, amd, amd64, Alpha/AXP, IA-64, PC-98 y UltraSPARC y existiendo ramas experimentales para dar juego a otras arquitecturas como ARM, MIPS, y PPC.

El fallo diagnosticado afecta al núcleo 6.0 de FreeBSD, si bien no se descarta que otras versiones padezcan la misma debilidad. El problema está causado por un error en la gestión de las peticiones de montaje NFS, gestionadas por el demonio «nfsd». La explotación del problema puede ser efectuada enviando peticiones especialmente preparadas a nfsd, derivando el ataque en una denegación de servicio al entrar el núcleo en «kernel panic».

Los administradores FreeBSD pueden, siempre en un entorno de pruebas controlado, reproducir el problema para verificar su estado de vulnerabilidad. Para ello sólo hay que enviar este volcado hexadecimal al puerto TCP 2049 de cualquier máquina que corra nfsd en FreeBSD:

—-
80 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02
00 01 86 a5 00 00 00 01 00 00 00 01 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
2f 74 6d 70
—-

En ausencia de parche, la medida más razonable es restringir el acceso a nfsd a través de un cortafuegos.