Bug en ftpd

En la lista de correo de seguridad fulldisclosure se anunció un fallo que afecta al servicio ftp predeterminado en OpenBSD. Este fallo afecta la release actual (4.6) y se habla que también pueden estar afectados otros sistemas operativos BSD, tales como FreeBSD, DragonFly, etc.

El fallo se produce en las funciones de globbing, que son las que nos permiten escribir menos y ahorrar tiempo al expandir las busquedas cuando usamos patrones como *,?,{}, etc. Un ejemplo es cuando escribimos la*, estamos listando todo lo que empieza por las letras la. Las funciones de globbing son las que se encargan de expandir el asterisco y convertirlo en la lista resultante de archivos. Una mala manipulación de la entrada del usuario es lo que produce la vulnerabilidad.

Cuando nos conectamos a un servicio ftp, podemos ejecutar comandos como ls, get, mget, put, etc. Que hacen uso de las funciones glob.

Tras hacer algunas pruebas encontré que realmente el servicio ftp no deja de funcionar completamente, pero si se "bloquea" la sesión actual del usuario que explota el fallo. Hasta el momento no se conoce una prueba de concepto o exploit que evidencie que se puede ejecutar código arbitrario a través de esta vulnerabilidad.

Algo a prestarle atención es que este tipo de fallo se habia encontrado en servidores FTP en el pasado y bueno, alguien encontró como explotarlo nuevamente :(.

Mas información:

http://www.owasp.org/index.php/Null-pointer_dereference

ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.6/common/007_ftpd.patch