lunes, 26 de noviembre de 2007

Bug en la implementación ext2/3/4 de Linux

Hace unos días, hablando con mi amigo TuXeD, me explicó que en la universidad de Eindhoven, donde está de erasmus, tiene una asignatura un tanto interesante, llamada “Linux kernel & hackers hut”, impartida por Andries E. Brouwer, un “hacker” del kernel Linux.

Durante una clase, explicó que existe un bit en ext2/3/4 que de ser activado (en el propio filesystem) le indica al sistema operativo que en caso de fallo al leer el sistema de archivos, debe lanzar un kernel panic y detenerse.

El propio Andries escribió sobre este problema en el 2005, sin embargo, como en principio es una feature de este sistema de archivos, no se le hizo mucho caso, y las cosas quedaron igual.

La discusión además nunca llegó a buen puerto, ya que los argumentos de los que consideran que esto no era peligroso, es que solo root puede montar un sistema de archivos, por lo que, aunque preparases una imagen defectuosa, le activases el bit panic, y la metieses en un pen drive, no podrías congelar la máquina al no poder montarlo.

En la actualidad las principales distros Linux, como fedora, Ubuntu, OpenSuSe, Mandriva etc automontan los dispositivos al ser conectados, como por ejemplo, los pen drive, por lo que creando una imagen defectuosa de ext3, metiendola en un pendrive y activandole el bit panic, podemos ir congelando todas las máquinas Linux en las que lo conectemos.

Para activar el bit sobre un sistema de archivos, usando tune2fs basta con hacer:

tune2fs -e panic imagen/dispositivo

y para desactivarlo:

tune2fs -e continue imagen/dispositivo

Evidentemente podríamos decir no es un bug, que es así ext3, pero la realidad es que Linux intenta garantizar que un usuario normal no puede congelar el sistema y afectar al trabajo de los demás.

Lo peor de todo, es que el tema se ha olvidado, y no hay planes de hacer nada frente a esto.

No hay comentarios.: