La falla de Polkit de 7 años permite a los usuarios de Linux sin privilegios obtener acceso a la raíz

Explotar para obtener acceso a la raíz

Un atacante local malicioso sin privilegios podría explotar una vulnerabilidad de escalada de privilegios de siete años descubierta en el servicio del sistema polkit para eludir la autorización y escalar los permisos al usuario raíz.

Rastreada como CVE-2021-3560 (puntuación CVSS: 7.8), la falla afecta a las versiones de polkit entre 0.113 y 0.118 y fue descubierta por el investigador de seguridad de GitHub Kevin Backhouse, quien dijo que el problema se introdujo en una confirmación de código realizada el 2 de noviembre. 9, 2013. Cedric Buissart de Red Hat señaló que las distribuciones basadas en Debian, basadas en polkit 0.105, también son vulnerables.

Polkit (no PolicyKit) es un conjunto de herramientas para definir y gestionar autorizaciones en distribuciones de Linux, y se utiliza para permitir que los procesos sin privilegios se comuniquen con los procesos con privilegios.

«Cuando un proceso solicitante se desconecta de dbus-daemon justo antes de que comience la llamada a polkit_system_bus_name_get_creds_sync, el proceso no puede obtener un uid y pid únicos del proceso y no puede verificar los privilegios del proceso solicitante», dijo Red Hat en un aviso. «La mayor amenaza de esta vulnerabilidad es la confidencialidad e integridad de los datos, así como la disponibilidad del sistema».

RHEL 8, Fedora 21 (o posterior), Debian «Bullseye» y Ubuntu 20.04 son algunas de las distribuciones populares de Linux afectadas por la vulnerabilidad polkit. El problema se ha mitigado en la versión 0.119, que se lanzó el 3 de junio.

obtener acceso a nivel raíz

«La vulnerabilidad es sorprendentemente fácil de explotar. Todo lo que se necesita son algunos comandos en la terminal usando solo herramientas estándar como bash, kill y dbus-send», dijo Backhouse en un artículo publicado ayer, agregando que la falla es provocada por enviando un comando dbus-send (digamos, para crear un nuevo usuario) pero terminando el proceso mientras polkit todavía está procesando la solicitud.

«dbus-send» es un mecanismo de comunicación entre procesos (IPC) de Linux que se utiliza para enviar un mensaje al bus de mensajes D-Bus, lo que permite la comunicación entre varios procesos que se ejecutan simultáneamente en la misma máquina. El demonio de autoridad de políticas de Polkit se implementa como un servicio conectado al bus del sistema para autenticar las credenciales de forma segura.

Al eliminar el comando, se omite la autenticación porque polkit maneja mal el mensaje finalizado y trata la solicitud como si viniera de un proceso con privilegios de raíz (UID 0), por lo que autoriza la solicitud de inmediato.

«Para activar la ruta de código vulnerable, debe desconectarse en el momento justo», dijo Backhouse. «Y debido a que hay múltiples procesos involucrados, el momento de ese ‘momento correcto’ varía de una ejecución a la siguiente. Es por eso que generalmente toma algunos intentos para que el exploit tenga éxito. Supongo que también es la razón por la cual el error no fue descubierto previamente «.

Se alienta a los usuarios a actualizar sus instalaciones de Linux lo antes posible para remediar cualquier riesgo potencial que surja de la falla.

Continua leyendo