EDICIóN GENERAL
284 meneos
 

Bug en la implementación de ext2, 3 y 4, el sistema de archivos de Linux

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...

| etiquetas: software libre , seguridad
169 115 2 K 831 mnm
169 115 2 K 831 mnm
  1. man pmount:

    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.
  2. No es un bug, es una vulnerabilidad si quieres. Además, no es de Linux, es de cualquier sistema que use ext como sistema de ficheros. Si usas Linux y no usas ext no te pasará.

    Pero es que además, incluso si usas ext (porque ext3 es bastante común con linux), usando normalmente el ordenador no te pasará nada. Solo se te bloqueará el ordenador si alguien intencionadamente introduce un pendrive que ha sido modificado especialmente de la manera en que se relata en el artículo. Y es algo que se tiene que modificar deliberadamente, no pasa por accidente. Así que sí, hay un cierto peligro de que un gracioso venga con un pendrive preparado de esta manera y te lo introduzca para bloquarte el ordenador, pero en caso contrario no pasará nada.
  3. #15 Documentación de ext4:

    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
  4. Vamos a ver

    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
  5. #5 Changes: pmount (0.9.13-4)
    * Fix potential kernel panics with custom ext2/3 filsystems

    Y por cierto eso de que no se requiere ser root habrá que probarlo :-)
  6. Se ha tardado 10 comentarios en soltar un "Pero no es un bug, por que es en linux, no?"

    Los windowseros de menéame están perdiendo reflejos xD
  7. Un usuario local que debe tener cuenta en dicha máquina puede, con un pendrive a mala leche, congelar el sistema de ficheros.

    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, ...
  8. Hombre, un "cierto" peligro, desde un punto de vista "casero", no? Ya que las consecuencias de esto pueden ser graves en entornos laborales, y de graciosos está el mundo lleno, de todas formas, está claro que es una feature, pero que con el tiempo, ha ido degenerando debido a la evolución de su entorno, ahora mismo, constituye un problema de seguridad local a nivel de usuario, lo que en el argot de seguridad, se llama bug.

    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.
  9. No es ni un bug ni una vulnerabilidad, simplemente a la gente le gusta hablar sin saber. El sistema puede desactivar tranquilamente esas opciones al montar una imagen, y DEBERIA HACERLO, del mismo modo que se desactivan ej: los suids para evitar que la gente meta en un disquete un ejecutable-virus de root con SUID activado creado en otro sistema.
  10. #9 yo instalo un debian nuevo, nada mas terminar de instalarlo, meto un pendrive especialmente preparado (a nivel de software), el sistema se congela, perdiendo el trabajo que no haya guardado.

    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...
  11. #19 Para que me creas, puedes ver el bug reportado en debian:
    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.
  12. #29 no vayas por ahí que con Mac vas a salir escaldado. Y por cierto, si el Open Source es tan desastre porque estás usando tu ahora mismo en tu Mac millones de lienas de codigo abierto? que por cierto, yo estoy usando esas mismas lineas de código, pero no he pagado una pasta por ellas como tu...
  13. #18 Yo puedo convencerte muy fácilmente de que tu mismo introduzcas un pendrive en un sistema de tu propiedad, pero lo voy a tener muy difícil para convencerte de que le quites el cable de la corriente
  14. Última hora, otro bug encontrado en linux, si reinicias la máquina con un boot cd y formateas el sistema de archivos podrías perder todos tus datos. En fin...
  15. Interesante el post. Comento:

    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.
  16. #44 que feliz es la ignorancia. Con una pequeña corriente (como una pila o una petaca de pilas) conectada al usb o incluso cortocircuitando el usb solo consigues quemar el chip del host usb (y en consecuencia todos los puertos usbs que funcionen sobre dicho chip tambien dejarian de funcionar), con lo que te cargarías el chip pero no conseguirias ni que se congelase el software ni un apagon ni nada.

    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.
  17. #12 ¿Y tu sabes leer? pmount monta automáticamente todos los dispositivos usb en todas las distros, pmount lo monta en modo usuario y hay una opción que si encuentra un error se lo salta que es el modo como se comporta ahora por defecto. Así que como no te busques otra forma de montar el pendrive que no sea pmount ... no se, a ver, que se me ocurre, mount? si!!! y que con que usuario puedes usar mount?

    ¿Para qué te crees que se implementó pmount? pues precisamente para evitar estas cosas.
  18. #16 puedo modificar la opción por defecto con tune2fs ANTES de darte el pendrive, por lo que tu no sabrías nada de esto, y te haría un "panic on error" por la cara :-)

    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.
  19. #11 tu sabes leer tio? no me gusta exaltarme :-)

    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.
  20. #34, ¿Y sigues usando MacOS o te has actualizado a algo un poco más nuevo?

    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?
  21. pmount ignora ese bit desde junio de este año, por lo que el fallo de seguridad no será explotable en entornos actualizados con ese parche o que tengan pmount>=0.9.13-4.
  22. Cuidado, yo soy usuario de Linux y lo defiendo, pero hay algo que es cierto:

    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...
  23. #29, Te voy a revelar un secreto: Cualquier usuario local puede congelar definitivamente un OS X. GOTO #13, #18, #25, #26, #27, ... haz cualquiera de esas pruebas y verás como Leopard también se cuelga. Por cierto, esto sí son bugs:
    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-stage
  24. #34 tranquilo, no se trata de talibanismos (aunque los hay), se trata de que en muchos casos se aprovecha la mas minima oportunidad para atacar un sistema que es realmente bueno y sin la perspectiva que tu pides. Linux es mucho mejor que otros SO, pero no por eso deja de tener errores, ¿pero sabes lo mejor de Linux?, que podemos conocer esos errores, los podemos reportar y son solucionados.
    Salud
  25. #7 pruebalo cuando quieras.

    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.
  26. #14 Dos cosas, la primera: no conozco exactamente si pmount en la versión que indicas, ha arreglado precisamente esto, la segunda: el problema sigue estando ahí, un flag que emite un panic(); de forma arbitraria.

    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
  27. #29 Se dice "cajón de sastre" ;) jejeje
  28. #2 por lo tanto que no haya panic...
  29. #3 el kernel emitirá un panic cuando con pmount montes un dispositivo preparado especialmente con lo explicado en el articulo, es ahi donde reside el problema, en que no se requiere root para explotarlo.
  30. #29 vaya trolleada!
    te has quedado a gusto, no?
  31. #44 claro, vamos a la biblioteca, sacamos los cables de los enchufes, los pelamos, los metemos por la ranura usb... xD
  32. Cuanto flame xD
  33. No hace falta darle tantas vueltas. Será muy sofisticado, pero... si hay que acceder al ordenador y al puerto USB, cualquier gracioso puede pulsar el reset o desenchufar, y a la porra, hala.
  34. Yo me refiero sólo a los talibanes.

    Luego ya de Linux cada uno piensa lo que le parece.

    saludos.
  35. #45, ¿A que lo de pelar los cables no tiene ningún sentido? Pues enchufar a sabiendas un pendrive que va a congelar el sistema (nada más), tampoco.

    #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.
  36. Hay gente que cuando escucha seguridad piensa en un segurata, para ellos esto es un bug.
    Para los que pensamos en una cámara acorazada, esto no es un bug. ;)
  37. #42, El escenario que propones es bastante rebuscado, la verdad. Hasta el momento, no he visto ninguna biblioteca que tenga los Pcs en armarios como dices pero, aun así, si alguien quiere freir la máquina, sólo necesitaría pasarle una pequeña corriente por la ranura USB.
  38. feature = característica
    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.
  39. Menos mal que yo uso reiserfs :-P
  40. #8 Tendrías que crear el sistema de ficheros en el pendrive, activarle el bit, conectarlo, desmontarlo, cambiarte a root y montarlo como root y ya puestos hasta puedes usar otro bug ejecutando rm -rf /
  41. Esto lo que es es un "cajon desastre", exactamente.

    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.
  42. ¿Tu crees? Yo no soy windowsero. Uso Mac quizá desde antes de que tú dejaras de chupar teta.
    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.
comentarios cerrados

menéame