Tecnología, Internet y juegos
209 meneos
2322 clics
Una vulnerabilidad en Vim permite hackear GNU con Linux con simplemente abrir un archivo en el editor

Una vulnerabilidad en Vim permite hackear GNU con Linux con simplemente abrir un archivo en el editor

El investigador de seguridad Armin Razmjou ha descubierto una grave vulnerabilidad en los conocidos editores de texto presentes en la mayoría de distribuciones GNU+Linux: Vim y Neovim. La vulnerabilidad CVE-2019-12735 tiene una puntuación alta puesto que permite a un atacante ejecutar comandos en el sistema operativo de forma remota y tomar control del mismo. De hecho, utilizando un comando es posible saltarse la protección del sandbox de Vim.

| etiquetas: gnu/linux , vim , vulnerabilidad
105 104 2 K 245
105 104 2 K 245
Comentarios destacados:                          
#8 La principal vulnerabilidad que le veo a Vim es que si lo arrancas sin darte cuenta, y no lo conoces, no hay cojones a salir de esa aplicación.

:troll:
«12
  1. Muy chungo, el vim viene por defecto en la mayoría de las distros...
  2. Tres hurras por emacs.
  3. Y por eso es, niños, que eso de usar sudo al estilo Ubuntu es una mala idea. El root debe tener clave y hacer su en lugar de sudo. De esa forma se garantiza que el usuario no adquiera permiso de root sin darse cuenta.
  4. ¿Pero Vim naranja o Vim cristal?

    #4 Y en caso necesario su -c, como la gente decente. Además tengo entendido que sudo guarda la "elevación" durante un tiempo (no se cuanto) y que durante ese tiempo puedes ejecutar sudo sin contraseña libremente :shit:
  5. El problema de sudo es que recuerda por un tiempo el permiso y no pid la clave.

    Con su no pasa eso.
  6. La principal vulnerabilidad que le veo a Vim es que si lo arrancas sin darte cuenta, y no lo conoces, no hay cojones a salir de esa aplicación.

    :troll:
  7. #8 True story :-|
  8. #7 En la uni cambiamos el ejecutable de telnet en un DOS para que fallara la primera vez, logueara la clave y luego ejecutara el telnet de verdad. La mayoría de la gente se creía que había metido mal la clave y nadie se puso a investigar el ejecutable del sistema.

    Si tienen acceso a tu cuenta de usuario no creo que sea dificil ocultarte un ejecutable chungo y hacer un alias a "su" para que haga algo similar. Más trabajo que con sudo sin clave, y más fácil de detectar en cuanto abras el .bashrc, pero meter la clave cada vez tampoco me parece que aporte una seguridad infalible. Eso sí, te libras del ataque totalmente automatizado.

    También como tengas que meter la clave decenas de veces al día una clave con 16+ caracteres de letras, números y símbolos especiales, al final ni te fijas dónde la estás metiendo, que lo haces por inercia, e incluso cortando y pegando.
  9. no es verdad, por mucho que lo digáis.
  10. #10 Si haces su sólo metes la clave una vez. De ahí en adelante dejas de ser el usuario y pasas a ser root hasta que termines con lo que estás haciendo.
    En Ubuntu puedes conseguir algo así haciendo sudo su.
  11. #12 ¿Puede tener alguna implicación de seguridad dejar la shell de root abierta todo el rato? Si usas screen o tmux, si entran a una shell de usuario te la podrían secuestrar, pero ahora mismo a menos que tengas acceso físico no se me ocurre ninguna otra forma.
  12. #4 POR Fin alguien lo dice. +1000
  13. #8 Menos mal que se ideó el Ctrl+Z :troll:
  14. #4 Yo cuando utilizo sudo, me pide la contraseña.
  15. #1. Esa es la razón por la que el parche que solucione el problema es inminente si es que no se ha solucionado ya. Vim es un imprescindible del Software Libre.
  16. #3 en emacs tambien esta la vulnerabilidad, pero cualquiera se pone a programar un ataque en Lisp, yo aun trato de hacer un bucle for.
  17. #8 #9. La secuencia de salida es :

    Tecla escape para salir del modo de 'edición de texto' y teclear :q! y pulsar la tecla 'Enter'.

    Y si lo anterior le cuesta mucho al común de los mortales con una la aplicación gráfica tipo 'System Monitor' se 'mata' el proceso con un 'kill' al VIM activo y punto.
  18. ¡Que le den al vim! ¡Larga vida a nano! :-D
  19. #19 Si claro, a toro pasado es fácil xD Pero ponte en la piel del usuario novato que pincha en un archivo de texto y se le abre en el Vim . . .
  20. #16 #4. Es que sudo pide contraseña, no me he topado con ningún sudo que no la pida excepto si ya la has tecleado con el primer sudo en una terminal de comandos.

    Bueno sí, la Raspberry Pi con Raspbian no pide la contraseña con el sudo, pero si que la pide en otro tipo de operaciones. De todas formas la Raspberry Pi a pesar de sus indiscutibles virtudes es 'poco fiable' 'poco seria' comparada con un PC convencional.
  21. ¿A vi no le afecta, no?
  22. #2 Linux es un sistema operativo clonado de UNIX, que era un antecesor de MS-dos (Microsof operating disc) . GNU no es mas que un fork subido al git con sourforge
  23. Edit. #17. Lo dicho, del propio artículo :

    '...Es recomendado aplicar los parches para Vim en la versión 8.1.1365, y para Neovim en la versión v0.3.6. Además de esto, se recomienda desactivar las 'modelines' en vimrc, usar el plugin securemodelines, o desactivar modelineexpr para no permitir expresiones en las 'modelines'...'

    (CC #1)
  24. #22 la pide la primera vez y la recuerda por un buen rato.
  25. #26. Es lógico que la recuerde, es por comodidad. Si abres una nueva terminal con un nuevo sudo te la vuelve a pedir.
    (CC #22)
  26. #24 GNU/Linux es un tipo de UNIX bajo licencia GNU. El UNIX (69 )no es antecesor de msdos (85), funcionan de forma muy diferente con una arquitectura diferente, concepción de comandos diferente, otros sistemas de ficheros, núcleo diferente, etc.
  27. #21 Y tras matarla y volverla a abrir:

    "Hay un fichero temporal por ahi perdido. Quieres recuperarlo? Si quieres usa la combinacion de teclas adecuada, eh?, que no estamos aqui para ayudarte.
  28. #27 La comodidad suele estar reñida con la seguridad...
  29. #26 #4 5 minutos por defecto
  30. #25 ¿Se supone que eso lo debe entender cualquiera que use Linux? ¿No es algo complicado para usuarios normales? He manejado muy poco algún Linux, pero con tanta defensa de que Linux es para cualquiera, este tipo de noticias me hacen dudar...
  31. En Slackware sí. Y también está por defecto VI. Pero el que se enlaza desde las consolas virtuales para todo, es nano.

    El Vim (para los que estamos acostumbrados a los comandos de VI) hay que instalarlo.
  32. #18 #3 Ya hace más de 30 años, en el libro "The cuckoo´s egg" te contaban como un grupo de crakers alemanes pargados por la KGB crakearon literalmente cientos de servidores UNIX y VAX en USA debido a una vulnerabilidad de Emacs.

    De la wiki:

    ...Stoll traced the error to an unauthorized user who had apparently used 9 seconds of computer time and not paid for it. Stoll eventually realized that the unauthorized user was a hacker who had acquired superuser access to the LBNL system by exploiting a vulnerability in the movemail function of the original GNU Emacs...
  33. #4, ¿podrías explicarlo un poco más? ¿Cómo puede pasarte que adquieras permiso de root sin darte cuenta y que a su vez con su no pueda pasar? Gracias.

    Edit: bah, supongo que es por lo que dices en #7.
  34. Se lo tienen muy merecido esos modernitos que no usan line.
  35. #8 Es fácil, tecleas ":q" o ":q!" (sin las comillas) y ya estás fuera!!

    Otra cosa es que no tengas el teclado en español y que no sepas donde está ":" :-D
  36. ¿Vamos a morir todos? Pues nada, oye, adiós.
  37. #32. Cualquier distribución Gnu/Linux se va actualizando sola (pidiéndote o no permiso, lo puedes configurar ) desde el propio escritorio, lo cual no implica que a poco que se entienda del tema cualquiera no pueda realizar cambios de forma más manual y directa desde la terminal de comandos o desde una aplicación gráfica tipo 'Synaptic Package Manager'.

    Pero no te compliques, cada vez se sale menos de los navegadores tipo Firefox. Esa es la principal razón por la que cada vez tiene menos sentido precuparse del sistema operativo que se esté usando, y si es libre mucho mejor.
    (CC #25)
  38. #3 buuuuuu fuera xD
  39. Vim es para nenas, los machotes utilizamos vi :roll:
  40. No puedo reproducirlo.
    Según el doc, las distros que desabilitan el modeline no son vulnerables. Debian y derivados (p.e. Ubuntu) no lo son.
    Aparte, no encuentro en ningún sitio si sirve para elevar privilegios. Sino, no deja de ser otra curiosidad.
    El cliente ftp permite ejecutar comandos en remoto de forma trivial.

    Edit: creando a manopla un .vimrc con "set modeline" funciona el exploit.
  41. #4 diras su -
  42. #22 tambien se puede configurar para que no la pida nunca a un determinado usuario
  43. #32. Por cierto, hace unos meses me pasé a Linux Mint, una de las distribuciones más populares en todo el mundo, y no puedo más que recomendártela. Bonita bonita, sencilla a más no poder, muy estable y muy libre.
    linuxmint.com/
  44. #20 VIVA!!!

    Nano es también "rarito" al menos hasta que te acostumbras (estoy más que acostumbrado, pero reconozco que a alguien nuevo en esto tiene que decir... ¡¡¡Pero qué coj...!!!). Pero es que VIM... Supongo que cuestión de gustos y que debería darle otra oportunidad, pero me cuesta mucho usarlo.
  45. Como he oído por ahí todo software tiene su vulnerabilidad, pero al ser software libre, todo el mundo que sepa puede reparar dicha vulnerabilidad, a diferencia de microsoft y apple, solo pueden ellos, y ojito por hacerlo por tu cuenta, te cae una demanda si o sí
  46. #23 Lo dudo, no recuerdo que tenga soporte para "modelines". Debo de ser de los pocos en el mundo que le queden máquinas solo con "vi".
  47. #10 Eso es un clásico, yo mismo hice version fake de telnet :-D
    Me has hecho recordar los viejos tiempos.
  48. #36 ¿Line?, ¡dirás "ed"!
  49. #32 para que lo entiendas, en este caso el peligro está en que uses un editor de texto en modo administrador. normal si uno quiere modificar algo que es propiedad de root, pero rarísimo en un neófito.
    Y para estos menesteres, que suelen ser cambiar opciones tipo yes/no o tocar una cifra, con un mini editor como nano va que chuta y no tiene ese problema. Jamás he usado Vim para editar algo del sistema.
  50. #28 Tanto el msdos como el UNIx funcionan con la pantalla del msdos, sin raton, el concepto de la consola de comandos fue plagiado por UNIX cuando microsoft lanzo el msdos
    Unix generó linux, que es basicamente la evolucionde quickbasic 4.5
  51. #52 pega que el unix la tuviera en el 69 y el msdos sea del 85 ¿eh? Que jodido...
  52. Linux es mejor, no hau viruses.
    :troll:
  53. #8 Es fácil, buscas dónde está enchufado el ordenador y lo desenchufas.

    Si todavía sigue ahí el Vim, le sacas la batería al portátil.

    Si no se puede sacar la batería, esperas unas horas.

    Si tras todo esto sigue ahí el Vim, es hora de deshacerse del ordenador y llamar a un exorcista.
  54. #52
    POr cierto unix tenía la consola y terminales
    <<Unix generó linux, que es basicamente la evolucionde quickbasic 4.5 >>
    El quick basic es un basic de microsoft con compilador que he utilizado también y que no tiene que ver con Linux (que tiempos, cuando usaba slackware por cierto)
    En fin. Al menos mantén el nivel de trolleo
  55. #43 Hay una leve diferencia entre su y su - con respecto al entorno: al simular un login con ese usuario asigna las variables de entorno pero muchas veces no es necesario.
  56. #3 Yo soy un hereje uso evil bajo Emacs (spacemacs) :-D
  57. #35 Eso es. Yo prefiero que haya dos claves: la del usuario que se pide para cosas del usuario o que sean inofensivas para el sistema (como mucho lanzar actualizaciones o configurar la red sería lo más grave). Y la de root que si la tecleas sabes que puedes romper algo (como instalar o desinstalar software).

    Al haber dos claves queda claro si vas a hacer algo peligroso. Con el sudo sólo hay una. Si una aplicación te pide tu clave no sabes si la va a usar para algo peligroso o no.

    Por ejemplo un programa malicioso podría hacerse pasar por un protector de pantalla y pedirte la clave para desbloquear, y en realidad usarla para hacer sudo y dañar el sistema.

    Ese programa malicioso podría haber llegado a través de un bug como éste del vim
  58. #32 La realidad es que la mayoría de los usuarios comunes de Linux no usan Vim nunca. Vim es usado principalmente por usuarios avanzados por sus propiedades de edición en la terminal, así que el que corre riesgo con esta vulnerabilidad sabe perfectamente como aplicar esas medidas para protegerse.
  59. #55 vi vi vi, the editor of the beast
  60. #50 Eso, quería decir "ed".
  61. #7 No, con 'su' pasa eso, porque tecleas la clave una vez y te quedas root hasta que cierres la sesión/el shell. Si de verdad te preocupa quedarte en modo root más allá de lo necesario, usar 'su' es la peor solución posible.

    #8 La primera vez que me enfrenté a vi no tenía una interfaz gráfica, y me tocó apagar el computador para salir. Luego alguien me enseño la secuencia mágica, y de ahí poco a poco he ido aprendiendo hasta ser capaz de usarlo para solucionar conflictos de git. Lo que nunca he podido hacer cómodamente es tener más de un archivo abierto a la vez.
  62. #59 Así lo tengo configurado yo, pero me extraña que digas que en ubuntu no se puede configurar de tal modo (otra cosa es que el intalador por defecto no te invite a ello)
  63. Esto no lo VimOS venir.

    Perdón por el chiste malo, ya me marcho.
  64. #64 Siendo Linux se puede configurar como quieras. Hablo del comportamiento por defecto que es el que suele dejar casi todo el mundo.
  65. #63 Pero para hacer su pones una clave diferente. Eso es lo seguro.

    Con respecto a vi, es duro, es cierto. Pero fue pensado para teclear lo menos posible así que es muy potente y se puede hacer cosas que ni se y ocurrirían en un editor normal. Fue pensado para funcionar incluso en máquinas de teletipo, o sea, como una impresora con teclado.
  66. #55 En realidad eso es lo que le pasó al que destruyó el disco duro de Bárcenas, pero no lo quieren reconocer.
  67. #3 gran sistema operativo pero adolece de editor de texto :troll:
  68. #4 Por mucho que recuerde la contraseña un tiempo, delante de cada comando tienes que volver a escribir sudo, así que habría que ser muy tonto para no darte cuenta de lo que haces.
    Con su, como abres sesión de root, es más fácil que al cabo de un tiempo no te des cuenta y teclees lo que no debes.
  69. #67 No logro entender qué tiene que ver que la clave sea distinta.
  70. Este es el año de Word en el escritorio.
  71. #4 Yo no lo veo mal por eso, sino por otra cosa, por que seguro muchos a la mínima que algo les pidan permisos, lanzan su y ya siguen como root todo el rato y en esa casuística es peor su, que sudo.

    A mi me parece mal sudo por que si ya tienen acceso a la cuenta de usuario, pueden hacer sudo -s y ser root sin saber la contraseña de root. Por otro lado, si comprometen la cuenta de un usuario, con su, deben saber también la de root y por eso es por lo que prefiero su vs sudo en servidores. Tampoco olvidemos que puedes configurar sudoers para que solo permita lo que tu quieres...
  72. #19 Y si lo anterior tampoco sirve, pulsa el botón de reset.
  73. #1 El que viene por defecto es "vi", no "vim". Pero vaya, es buena señal que salgan este tipo de bugs para que la comunidad por corrija.
  74. #46 ¿nadie más usa JOE? Yo cada vez que despliego un Linux se lo instalo...no sé vivir sin él. :roll:
  75. export EDITOR='/usr/bin/nano'
  76. #73 Es que en Ubuntu el root no suele tener contraseña, o sea, no te puedes loguear como root si no es mediante sudo.

    Yo prefiero que el root tenga clave pero no permitir root por SSH. De esa forma si quieres ser root en remoto necesitas saber dos claves distintas.
  77. #5 hasta que matas, cierras, la terminal, no es una cuestión de tiempo
  78. #71 Que diferencia las funciones. La clave de usuario te da acceso a cosas inofensivas para el sistema. La de root te deja hacer lo que te de la gana.
  79. #70 pero una aplicación maliciosa puede aprovechar eso.
  80. #82 Vale. Estaba pensando solo en un ordenador personal.
  81. #81 perdón tengo que rectificar, veo que depende de la distribución, in Ubuntu, your administrative privileges last for 15 minutes by default, y supongo que derivados también... 15 minutos por defecto
  82. #81 Es una cuestión de tiempo, lo acabo de mirar:

    scottlinux.com/2012/08/04/change-sudo-default-password-timeout/

    Dentro de ese periodo de tiempo puedes abrir otra terminal y ejecutar cualquier cosa con sudo. Es un peligro.
  83. #70 Yo para evitar problemas de root
    1° obligo a ssh-server que no permita login de root y
    2° edito /root/.bashrc para que salga el root@machine# en color rojo.
  84. #77 Pues no, la verdad es que no lo conocía yo antes utilizaba muchísimo el vi hasta que descubrí nano y ahora es el que utilizo habitualmente cuando estoy en modo consola, cuando estoy en modo gráfico suelo usar el kate que también me resulta bastante cómodo.
  85. #19 O simplemente ZQ (en mayuscula)
  86. #89. No lo conocía. También funciona. :-)
    (CC #19 #75 #92)
  87. #91 ZQ sale sin guardar ZZ guardando. :hug:
  88. #84 Es que en un ordenador personal, diferenciar lo inofensivo de lo peligroso es importante.
    Nadie está exento de meter la pata, o peor, de que por ejemplo por un problema de seguridad en el navegador te podrían hacer ejecutar un programa. Ese programa por ejemplo podría simular un protector de pantalla: "teclee su clave para desbloquear la pantalla", y se acabó. El programa malicioso tiene tu clave que resulta dar acceso a todo el sistema mediante sudo. Una vez obtenido el permiso de root ya más te vale formatear y reinstalar porque difícilmente encontrarás todo lo que puedan haberte tocado en el sistema.

    Al tener dos claves sabes perfectamente que si tecleas la de root algo peligroso vas a hacer.
  89. #31 15 minutos by default
  90. #86 Sí, ya he rectificado arriba, 15 minutos por defecto. Ocurre que yo sigo con slackware usamos su, y solo he tecleado sudo en máquinas ajenas con ubuntu y dervados y pensaba que al cerrar el shell y matar el proceso padre se mataba, pero no
    el man(nual) de sudo lo dice 15.
    rtfm
  91. Qué mal redactado, qué subnormal el redactor, qué capullo... Qué mal, joder.

    De manera remota dice...

    "Si un atacante crea un archivo especial utilizando Vim o Neovim, bastaría solo con que lo abras en cualquiera de los editores para que este pueda hackear tu distribución Linux ejecutando comandos arbitrarios de forma remota."

    No hostia no... ¡¡!No!!!
  92. #76 Buena señal? Debemos alegrarnos y celebrar que hayan bugs como este? :shit:
  93. Por cierto nanistas
    ¿algo ha destacar, realmente importante de su nueva versión, 4.0?
    Yo todavía ando con la 2
  94. #1 Si, es una buena cagada. Pies de plomo al abrir archivos...
  95. #32 Un usuario "normal" no usa vim. Tranquilo.
«12
comentarios cerrados

menéame