Temas generales

Errores graves de escalada de privilegios encontrados en el administrador de paquetes de Linux Snap

Errores graves de escalada de privilegios encontrados en el administrador de paquetes de Linux Snap

Los expertos han descubierto una vulnerabilidad fácilmente explotable en Snap, un sistema de distribución y empaquetado de aplicaciones global diseñado para Ubuntu pero disponible en muchas distribuciones de Linux. La falla permite que un usuario con pocos privilegios ejecute código malicioso como root, que es la cuenta administrativa más alta en Linux.


Errores graves de escalada de privilegios encontrados en el Snap del administrador de paquetes de Linux
Thinkstock
 

La vulnerabilidad, denominada CVE-2021-44731, es parte de una serie de errores que los investigadores de Qualys descubrieron en varios componentes de Linux durante su investigación de seguridad de Snap. Este último, junto con el otro, denominado CVE-2021-44730, se encuentran en snap-confine, la herramienta encargada de crear sandboxes para la app Snap.

¿Qué es Snap?

Snap es un administrador de paquetes para Linux desarrollado por Canonical, detrás de la popular distribución de escritorio y servidor Ubuntu. Le permite empaquetar y distribuir aplicaciones independientes llamadas «snaps» que se ejecutan dentro de un contenedor restringido, proporcionando un nivel de seguridad configurable.

Compruebe también:

Como aplicaciones independientes, Snap no tiene dependencias externas, lo que le permite ser multiplataforma y distribuirse entre plataformas. Tradicionalmente, todas las principales distribuciones de Linux mantienen su propio repositorio y administrador de software. Debian tiene DEB, Ubuntu tiene PPA, Fedora y Red Hat tienen RPM, Arch Linux tiene Pacman, etc. Todos estos sistemas descargan el paquete requerido junto con todas las demás dependencias como paquetes separados. Los Snaps, por otro lado, se incluyen con todas las dependencias que necesita, lo que los hace implementables globalmente en todos los sistemas Linux equipados con Snap.

Snap se envía de forma predeterminada en Ubuntu y muchas distribuciones de Linux, y está disponible como opción en muchas otras distribuciones, incluida la principal. Se utiliza para distribuir no solo aplicaciones de escritorio, sino también aplicaciones en la nube e IoT.

Snap Confinement, o Quarantine, tiene tres niveles de seguridad, con el modo estricto utilizado por la mayoría de las aplicaciones. En este modo, las aplicaciones deben solicitar acceso a archivos, otros procesos o la red. Esto no es diferente del modelo de sandboxing de la aplicación y los permisos de los sistemas operativos móviles como Android.

Dado que el sandboxing de aplicaciones es una de las funciones principales de Snap, cualquier vulnerabilidad que le permita escapar de este aislamiento y tomar el control del sistema host se considera extremadamente peligrosa.

Errores de escalada de privilegios

Los investigadores de Qualys han apodado su vulnerabilidad limitada «Oh Snap! More Lemmings» porque se parece a otro rayo, descubierto en 2019 llamado Dirty Sock. Desde Dirty Sock, Snap se ha sometido a extensas auditorías de seguridad por parte del equipo de seguridad de SUSE y, por lo general, está programado de manera muy defensiva, aprovechando varias funciones de seguridad básicas. Como perfiles AppArmor, filtros seccomp y espacios de nombres.

“Casi abandonamos nuestra auditoría después de unos días”, dijeron los investigadores de Qualys en su informe, y agregaron que “una vulnerabilidad limitada (especialmente en la instalación predeterminada de Ubuntu) fue extremadamente difícil de detectar y explotar”.

Sin embargo, el equipo notó algunas fallas menores y decidió seguir adelante. Esto resultó en el descubrimiento de dos vulnerabilidades de escalada de privilegios: CVE-2021-44730, un ataque de enlace duro que solo se puede usar en configuraciones no virtuales, es decir, cuando el fs.protected_hardlinks del kernel es 0; y CVE-2021-44731, que es un estado de carrera que se puede usar en instalaciones de Ubuntu Desktop virtuales e instalaciones de Ubuntu Server semivirtuales.

“Este caso de carrera abre un mundo de posibilidades: dentro del espacio de nombres de montaje de snap (que podemos ingresar a través de snap-confine), podemos crear un directorio no pegajoso y grabable globalmente en /tmp, o podemos montar cualquier otro directorio que forma parte del sistema de archivos a /tmp ”- dicen los analistas de Qualysa. “Podemos ganar de manera confiable este estado de carrera observando /tmp/snap.lxd con inotify, instalando nuestro exploit y limitándonos a la misma CPU con Sched_setaffinity(), y reduciendo la prioridad de programación de snap-cline con setpriority() y schedule_schedule.( )”.

Mientras investigaban estas fallas, los investigadores de Qualys también descubrieron errores en las bibliotecas y otros componentes relacionados que usa Snap: montajes no autorizados en libmount util-linuxa (CVE-2021-3996 y CVE-2021-3995); Valor de retorno inesperado de realpath() glibc (CVE-2021-3998); Desbordamiento/flujo de búfer a través de uno en getcwd() glibc (CVE-2021-3999); Recurrencia no controlada en systemd-tmpfiles (CVE-2021-3997). Estos errores se corrigieron en estos componentes a principios de este año.

Ubuntu ha lanzado parches para CVE-2021-44731 y CVE-2021-44730 para la mayoría de las versiones de Linux que admite, con la excepción de ESM 16.04 (Mantenimiento de seguridad extendido), que aún está esperando parches. Ambas vulnerabilidades están clasificadas como muy peligrosas.

Fuente: OSC

.

Publicaciones relacionadas

Botón volver arriba