Vulnerabilidad

Hace poco se dio a conocer la noticia de que fue encontrada una vulnerabilidad en el emulador de terminal xterm (ya catalogada bajo CVE-2022-45063), el problema permite ejecutar comandos de shell cuando se procesan determinadas secuencias de escape en el terminal.

Sobre el problema se menciona que se debe a un error en el procesamiento del código de escape 50 que se usa para establecer u obtener opciones de fuente. Si la fuente solicitada no existe, la operación devuelve el nombre de la fuente especificada en la solicitud.

El problema está en la secuencia OSC 50, que es para configurar y consultar la fuente. Si una fuente determinada no existe, no se establece, pero una consulta devolverá el nombre que se estableció. Los caracteres de control no pueden ser incluido, pero la cadena de respuesta se puede terminar con ^G. Este esencialmente nos da una primitiva para devolver el texto al terminal y terminando con ^G.

Los caracteres de control no se pueden insertar directamente en el nombre, pero la cadena devuelta se puede terminar con la secuencia «^G», que en zsh, cuando el modo de edición de línea de estilo vi está activo, hace que se realice una operación de expansión de la lista, que se puede usar para ejecutar comandos sin presionar explícitamente la tecla Intro.

Para un ataque en el caso más simple, es suficiente mostrar el contenido de un archivo especialmente diseñado en la pantalla, por ejemplo, usando la utilidad cat, o pegar una línea desde el portapapeles.

Debian, Red Hat y otros deshabilitan las operaciones de fuentes de forma predeterminada , pero los usuarios pueden volver a habilitarlos a través de una opción o menú de configuración. Además, upstream xterm hace no los desactiva por defecto, por lo que algunas distribuciones incluyen una configuración predeterminada vulnerable.

Para explotar con éxito la vulnerabilidad, el usuario debe usar el shell Zsh con el editor de línea de comando (vi-cmd-mode) cambiado al modo «vi», que generalmente no se usa de manera predeterminada en las distribuciones.

Básicamente, necesitamos:
zsh
modo de edición de línea activa en estilo vi
copiar el texto del troyano en el portapapeles
pegarlo en zsh

Esto se puede hacer automáticamente, muchos sitios modifican el texto cuando se copia al portapapeles. Por lo tanto, solo uso el búfer de selección, al que no acceden los navegadores. Solo en gtk3 y en ff en particular se rompen constantemente por alguna razón, es agotador.

El problema tampoco aparece cuando xterm se establece en allowWindowOps=false o allowFontOps=false. Por ejemplo, la configuración allowFontOps=false se establece en OpenBSD, Debian y RHEL, pero no se aplica de manera predeterminada en Arch Linux.

Según el registro de cambios y la declaración del investigador que identificó el problema, la vulnerabilidad se solucionó en la versión xterm 375, pero según otras fuentes, la vulnerabilidad continúa manifestándose en xterm 375 de Arch Linux.

Esto significa que para explotar esta vulnerabilidad, el usuario debe ser
usando Zsh en el modo de edición de línea vi (generalmente a través de $EDITOR que tiene «vi» en
eso). Si bien es algo oscuro, esto no es totalmente desconocido.
configuración.

En esa configuración, algo como:
printf «\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a» > cve-2022-45063
cat cve-2022-45063 # or another way to deliver this to the victim

Finalmente, como siempre se recomienda a los usuarios de los sistemas afectados que tengan sus sistemas actualizados, ya que como sabrán cuando se conocen vulnerabilidades de seguridad, los desarrolladores deben reparar dichos fallos, porque se divulga gran parte del cómo se puede explotar estos fallos.

Cabe mencionar que las operaciones de fuentes no están permitidas en las configuraciones predeterminadas de xterm de algunas distribuciones de Linux, por lo que no todas las distribuciones están propensas a este fallo. Para los interesados en seguir la publicación de correcciones por distribuciones, pueden realizarlo en estas páginas: DebianRHELFedoraSUSEUbuntuArch LinuxOpenBSDFreeBSDNetBSD.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

 

Fuente: ubunlog

¿Quién está en línea?

Hay 46393 invitados y ningún miembro en línea