www.eyeideas.es/2007/11/26/bug-en-la-implementacion-ext234-d...
por
lolerman el 26-11-2007 21:51 UTC, publicado el 27-11-2007 00:50 UTC
Explicación de como una feature normal y corriente, termina convirtiendose en un bug que permite congelar linux usando solo un pendrive o un cd, no existe parche para remediarlo...
negativos:
2 usuarios:
169 anónimos:
115 compartir:

Yo considero que el bug si es de Linux debido a que es muy facil checkear el uid, y ver si el montaje viene desde root, o no, y si no viene desde root, no hacer panic();, cuando la ejecución se produce con suid, el uid no pasa a ser 0, es el euid (effective uid) el que pasa a ser 0, por lo que el check, es muy simple, y solo root podría hacer panic.
pmount - mount arbitrary hotpluggable devices as normal user
Todos los pendrives se montan con pmount en cualquier distro actual y por lo tanto no se montan como root.
* Fix potential kernel panics with custom ext2/3 filsystems
Y por cierto eso de que no se requiere ser root habrá que probarlo :)
Adicionalmente, no es el wrapper pmount el que debe fixearlo, eso es incorrecto, esto es problema de la implementación de ext3, o todos los wrappers tienen que fixearlo por su cuenta?
Para probarlo puedes jugar con fsfuzzer y luego con tune2fs le metes el panic bit, coges la imagen, y la metes en un pen drive, lo sacas, lo metes, y verás como se congela, comprobado.
Si te miras el modulo ext3 en el vfs del kernel, verás que no hay ningún condicional al uid del usuario, por lo que una vez saltas a kernel land, influye poco que seas o no root, si no se pone explicitamente un condicional.
Pero no es un bug, por que es en linux, no? :)
Para mejorar el software libre hay que analizarlo, estudiarlo, y encontrar sus defectos, defendiendo como talibanes que congelar una máquina configurada por defecto, metiendo un pendrive, no es una vulnerabilidad potencial que puede producir perdida de trabajo, no se avanza...
NO NECESITAS ROOT PARA ESTO.
Te lo voy a explicar de otra manera, en MI pc, creo todo el entorno, consigo el pendrive malicioso, entonces, voy a tu casa, donde tienes tu debian normal y corriente, meto el pendrive, y ala, se cuelga, kernel panic :)
Yo no tenia root.
No necesito root por que quien llama a panic(); (así se llama la función en el kernel) es el kernel, es código en ring0 y no tiene restricciones.
Bueno, es grave hasta cierto punto y es que se trata de algo a nivel local. Si puedes tener acceso a ese equipo para meterle un pendrive/cd con el sistema de ficheros con ese bit activado también podrías meter ese mismo pendrive y hacer cualquier otra cosa como arrancarte otro OS desde el que montar las particiones del equipo a tu gusto y llevarte/cambiar o borrar la información, cambiar las cuentas..
Teniendo acceso a la máquina también puedes conectarle un punto de acceso chiquitin y esconderlo detrás y un largo etcétera.
La seguridad de un equipo cuando estás sentado en el asiento por decirlo en cierto modo ya sabemos cual es... Si nos preocupa eso entonces tenemos que contratar seguridad (seguratas) o lo que sea. Por eso el tipo de vulnerabilidades o posibilidad de problemas de seguridad a los que sí se suele prestar más atención son los que se pueden hacer por remoto.
¿Para qué te crees que se implementó pmount? pues precisamente para evitar estas cosas.
Entradas en el fstab y un largo etcetera de entornos, siguen estando afectados, así como nuevos futuros softwares, ya que el problema que dices (yo te creo, en principio) que ha solucionado pmount, no era un problema en pmount, sino que pmount ha "limpiado" los problemas de otros, por lo que siguen estando ahí.
De todas formas, te pido disculpas por exaltarme un poco, las discusiones en caliente no son buenas, tu tienes un punto de vista, totalmente respetable, y yo tengo otro, no pasa nada.
Saludos
lwn.net/Articles/203915/
errors=remount-ro(*) Remount the filesystem read-only on an error.
errors=continue Keep going on a filesystem error.
errors=panic Panic and halt the machine if an error occurs.
La opción por defecto es errors=remount-ro así que montaría el pendrive en modo de sólo lectura, ext3 tiene la misma opción por defecto y pmount la usa también, así que repito, tendrías que montarlo como root y aposta para joderla pero vamos que por muchas pruebas que se os presenten parece que es imposible haceros cambiar de opinión.
Y edito: Ya veo que la verdad duele por los negativos que me van cayendo :)
Edito II: Por si queda alguna duda pongo un enlace a la documentación de ext3, las opciones por defecto son las que llevan asterisco:
www.mjmwired.net/kernel/Documentation/filesystems/ext3.txt
El bit va en el propio sistema de archivos, no en como se comporta tu sistema, por lo que cada sistema de archivos, decide como actuar en caso de error, al margen de lo que haya por defecto en ext3.
Teniendo en cuenta que hay que estar junto a la máquina para meter el usb hecho a propósito ¿cual es la diferencia de meter el pendrive a quitarle el cable de alimentación?
En un servidor con una política de seguridad decente no vas a poder meter un usb, ni entrar en la sala y si es para joder el sobremesa de alguien, lo dicho, lo mismo te da meter el usb que "tropezarte" así que yo no lo veo grave.
Un saludo
bugs.debian.org/cgi-bin/bugreport.cgi?bug=427402
Y la lista de cambios en pmount en el launchpad de ubuntu:
launchpad.net/ubuntu/+source/pmount/
Tienes razón en que no debería ser pmount quien lo arregle pero como ya dije antes pmount se implementó precisamente para evitar estas cosas, es mejor solucionar los problemas antes de que sucedan que esperar luego a arreglarlos.
P.D.: Y yo también te pido disculpas si en algún momento te he ofendido en esta discusión.
1.- SI existe el bit
2.- SOLO funciona con mount (como root, o autorizado por root en /etc/fstab)
3.- NO funciona con pmount (pmount se salta el bit a la torera)
4.- NO se auto-montan pendrives con mount, sino con pmount
5.- NO se puede hacer un "pendrive-trampa" (*)
(* al menos desde Julio de 2007 en distros actualizadas)
Señores, hay bugs bastante más graves (y ni siquiera necesitan tener una cuenta en la máquina a hackear). Se me ocurren usuario cafre + martillo, usuario cafre + ventana abierta, usuario cafre más sistema antincendios, ...
Los windowseros de menéame están perdiendo reflejos xD
Y mira, aqui apesta a niñato - talibanero - sin novia - linuxero que te mueres de golpe.
Vaya chapuza de bug, tio. Linux es un cajón-desastre para que enreden cuatro crios.
meneame.net/story/problemas-baterias-teclados-mac-os-leopard
meneame.net/story/vulnerabilidad-apple-mail-osx-leopard
meneame.net/story/bug-seguridad-leopard-mala-combinacion-firefox-stage6
te has quedado a gusto, no?
Lo dicho, cuando muchos chupabais teta, yo usaba Mac; no MacOS X, sino MacOS a secas, que no era Unix, ni tenía nada que ver. A finales de los 80. Cuando los PCs tenían el tamaño de un armario.
(esas cosas que veis en blogs frikis y os hacen tanta gracia)
¿Qué hacíais muchos de vosotros entonces? Supongo que aprender a andar.
A mi es que me jode ver cómo alguna gente es tan talibán y tan borrica.
Que le metas un pendrive a Linux y se congele, eso no se ve en ningún otro lado.
No digo que Linux este bien ni mal, a mi Linux me da por culo, como casi todo lo "tecnológico".
Hay cosas bastante más interesantes y gratificantes en la vida de las que ocuparse.
A mi lo que me apena y me pone de mala ostia es la facilidad para comportarse como un talibán que tiene la peña. Peña que el realidad tiene menos prespectiva y autonomía que el peor "bot" del peor videojuego que podáis imaginar.
Utilizando palabras que podáis entender.
saludos.
filesystem = sistema de fichero / sistema de archivos
(Probablemente haya alguna perla más oculta entre vuestros comentarios, pero estoy trabajando y no tengo tiempo de leerlos todos).
Entiendo que hay una dura competencia por convertirse en el más cool de meneame, pero ese no es el camino.
Salud
Luego ya de Linux cada uno piensa lo que le parece.
saludos.
Por cierto, para los que todavía gateábamos cuando tú ya eras maestro de D. Ritchie, si que un equipo se cuelgue por enchufarle un pendrive malicioso no se ve en ningún lado, ¿qué opinas de un sistema operativo al que se le puede congelar el finder si tratas de leer un CD rayado?
1. EL BIT EXISTE
2. EL BIT FUNCIONA, CUELGA LA MAQUINA
3. EN UBUNTU 7.10 NO SE USA PMOUNT PARA EL AUTOMONTADO
4. EN ALGUNAS DISTROS, (3) NO SE REQUIERE ROOT
En definitva, imaginaros el siguiente escenario:
Un ordenador, al que no tienes acceso físico real, sino que está en un mueble cerrado, en una exposición, en una biblioteca, etc y que el espacio para meter los pendrive e imprimirte cosas etc pero:
1. No puedes apagarlo, por que la política del sistema lo impide
2. No puedes detener las X, por lo mismo
3. No puedes hacer nada que detenga el uso normal de la máquina
Esto hasta aquí es una configuración normalita, ahora bien, vas tu con tu pendrive, lo metes, y placa, byebye máquina.
No todos los bugs son para que los usuarios domésticos se asusten, hay muchos tipos de bugs, que afectan a entornos mas reducidos o menos, en escenarios distintos etc, pero la realidad de fondo, es que en principio, un administrador sabe que debe restringirte para evitar que jodas la máquina, como tirarla por la ventana (cosa imposible si está metida en un mueble en una biblioteca, cerrado con llave) estirar del cable (lo mismo) no darte acceso para reiniciarla (para que no uses live cd's) etc, y Linux en principio le garantiza que desde userland, y con todo eso bien echo, la máquina no podrá ser detenida (si no para que se inventaron las políticas del sistema?)
Y ahora viene uno con un pendrive, lo mete y te jode.
La informática no es solo la informática del hogar, por favor... que hay MILLONES de escenarios posibles, y una situación excepcional, no prevista y que actúa de esta forma, es la que los jode, el día que tengáis que montar una máquina en un entorno controlado especifico, entenderéis lo que digo...
Como es posible que no veais un bug (o fallo en software) en algo TAN obvio?
Se está hablando de que con un simple pen o cualquier otro método que tengais de montar una partición maliciosamente preparada se congela un sistema entero, sin mas.
Acaso es tan difícil de entender que aunque sea una situación muy poco común no deja de ser un bug?
En fin me he reido de leer tanto comentario de personas que o bien no entienden de lo que hablan o que bien no se han detenido un minuto a pensar sobre el tema.
#46, Lo de las pilas lo has dicho tú, no yo.
Y sí, tienes razón. Es un bug. Pero repito, un tío con un hacha también revienta el sistema y, sin embargo, nadie considera eso un bug.
Para los que pensamos en una cámara acorazada, esto no es un bug. ;)