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
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.
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.
#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…   » ver todo el comentario
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 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 :-)
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
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, ...
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…   » ver todo el comentario
#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.
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.
#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...
#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...
#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
Ú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...
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…   » ver todo el comentario
#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á…   » ver todo el comentario
#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.
#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.
#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.
#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?
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.
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.…   » ver todo el comentario
#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
#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
#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.
#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
#29 Se dice "cajón de sastre" ;) jejeje
#2 por lo tanto que no haya panic...
#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.
#29 vaya trolleada!
te has quedado a gusto, no?
#44 claro, vamos a la biblioteca, sacamos los cables de los enchufes, los pelamos, los metemos por la ranura usb... xD
Cuanto flame xD
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. ;)
Yo me refiero sólo a los talibanes.

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

saludos.
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.
#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.
#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.
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.
Menos mal que yo uso reiserfs :-P
#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 /
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…   » ver todo el comentario
¿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