¿Utilizas VNC? tienes que actualizar pues se descubrieron cerca de 37 vulnerabilidades

noviembre 26, 2019 , 0 Comments

vnc-vulnerabilities-featured

Recientemente Pavel Cheremushkin de Kaspersky Lab analizó varias implementaciones del sistema de acceso remoto VNC (Virtual Network Computing) e identificó 37 vulnerabilidades causadas por problemas de memoria.

Las vulnerabilidades detectadas en las implementaciones del servidor VNC solo pueden ser explotadas por un usuario autenticado y los ataques a las vulnerabilidades en el código del cliente son posibles cuando un usuario se conecta a un servidor controlado por un atacante.

En el blog de Kaspersky, comentan que estas vulnerabilidades puede ser explotadas de la siguiente forma:

Las aplicaciones de VNC consisten en dos partes: un servidor instalado en el ordenador al que tu empleado se conecta en remoto y un cliente que se ejecuta en el dispositivo desde el cual se conecta. Las vulnerabilidades son mucho menos comunes en el lado del servidor, que siempre es algo más sencillo y, por tanto, tiene menos errores. No obstante, nuestros expertos de CERT descubrieron errores en ambas partes de las aplicaciones objeto de la investigación, aunque en muchos casos un ataque en el servidor podría ser imposible sin autorización.

Sobre las vulnerabilidades

La mayor cantidad de vulnerabilidades se encontraron en el paquete UltraVNC, disponible solo para la plataforma Windows. En total, en UltraVNC se identificaron 22 vulnerabilidades. 13 vulnerabilidades podrían conducir a la ejecución de código en el sistema, 5 podrían filtrar el contenido de las áreas de memoria y 4 provocarían una denegación de servicio.

Todas estas vulnerabilidades fueron corregidas en la versión 1.2.3.0.

Mientras que en la biblioteca abierta LibVNC (LibVNCServer y LibVNCClient), que se usa en VirtualBox, se identificaron 10 vulnerabilidades. 5 vulnerabilidades (CVE-2018-20020, CVE-2018-20019, CVE-2018-15127, CVE-2018-15126, CVE-2018-6307) fueron causadas por desbordamientos del búfer y podrían conducir a la ejecución del código. 3 vulnerabilidades pueden conducir a la fuga de información; 2 a la denegación de servicio.

Los desarrolladores ya han solucionado todos los problemas: la mayoría de las correcciones se incluyen en el lanzamiento de LibVNCServer 0.9.12, pero hasta ahora todas las correcciones se reflejan solo en la rama maestra y en las distribuciones generadas actualizaciones.

En TightVNC 1.3 (rama heredada multiplataforma probada), ya que la versión actual 2.x se lanzó solo para Windows), se descubrieron 4 vulnerabilidades. Tres problemas (CVE-2019-15679, CVE-2019-15678, CVE-2019-8287) son causados ​​por desbordamientos del búfer en las funciones InitialiseRFBConnection, rfbServerCutText y HandleCoRREBBP y podrían conducir a la ejecución del código.

Un problema (CVE-2019-15680) conduce a una denegación de servicio. A pesar de que los desarrolladores de TightVNC fueron notificados de los problemas el año pasado, las vulnerabilidades siguen sin corregirse.

En el paquete multiplataforma TurboVNC (fork de TightVNC 1.3, que usa la biblioteca libjpeg-turbo), solo se encuentra una vulnerabilidad (CVE-2019-15683), pero es peligrosa y si hay acceso autenticado al servidor, hace posible organizar la ejecución de su código, por lo que al igual que con los desbordamientos del búfer, es posible controlar la dirección de retorno. El problema se solucionó el 23 de agosto y no aparece en la versión actual 2.2.3.

Si quieres conocer más al respecto puedes consultar los detalles en la publicación original. El enlace es este.

En cuanto a las actualizaciones de los paquetes se pueden realizar de la siguiente forma.

libvncserver

El código de la biblioteca lo pueden descargar desde su repositorio en GitHub (el enlace es este). Para descargar la versión más actual en estos momentos puedes abrir una terminal y teclear en ella lo siguiente:

wget https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.12.zip

Descomprimes con:

unzip libvncserver-LibVNCServer-0.9.12

Entras al directorio con:

cd libvncserver-LibVNCServer-0.9.12

Y construyes el paquete con:

mkdir build
cd build
cmake ..
cmake --build .

TurboVNC

Para actualizar a esta nueva versión, basta con descargar el paquete de la última versión estable, el cual pueden obtener desde el siguiente enlace.

Hecha la descarga del paquete, ahora simplemente podrán instalarlo dando doble clic sobre el y que el centro de software se haga cargo de la instalación o pueden hacerlo con su gestor de paquetes de preferencia o desde una terminal.

Esto ultimo lo hacen posicionándose en donde está el paquete descargado en su terminal y en ella solo tienen que teclear:

sudo dpkg -i turbovnc_2.2.3_amd64.deb

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.