En lo que va del mes ya se dieron a conocer varias vulnerabilidades encontradas en el kernel de Linux
Durante estos días que han transcurrido desde que inicio el mes, se han dado a conocer diversas vulnerabilidades que afectan al kernel de Linux y que algunas de ellas permite eludir las restricciones de bloqueo.
Dentro de las varias vulnerabilidades que se dieron a conocer, algunas de ellas son causadas por acceder a áreas de memoria ya liberadas y permitir que un usuario local eleve sus privilegios en el sistema. Para todos los problemas bajo consideración, se han creado prototipos funcionales de exploits, que se publicarán una semana después de la publicación de información sobre vulnerabilidades.
Una de las vulnerabilidades que llama la atención es la (CVE-2022-21505) que podría eludir fácilmente el mecanismo de seguridad Lockdown, que limita el acceso de root al kernel y bloquea las rutas de omisión de arranque seguro de UEFI. Para eludir, se propone utilizar el subsistema kernel IMA (Arquitectura de medición de integridad), diseñado para verificar la integridad de los componentes del sistema operativo mediante firmas digitales y hash.
El bloqueo restringe el acceso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modo de depuración kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (estructura de información de tarjeta), algunas interfaces ACPI y CPU MSR, bloquea las llamadas kexec_file y kexec_load, evita el modo de suspensión, restringe el uso de DMA para dispositivos PCI, prohíbe la importación de código ACPI de variables EFI, evita la manipulación del puerto de E/S, incluido el cambio del número de interrupción y el puerto de E/S para el puerto serie.
La esencia de la vulnerabilidad es que cuando se usa el parámetro de arranque «ima_appraise=log», se permite llamar a kexec para cargar una nueva copia del kernel si el modo de arranque seguro no está activo en el sistema y el modo de bloqueo se usa por separado y no permite que se habilite el modo «ima_appraise» cuando el Arranque seguro está activo, pero no permite que el Bloqueo se use por separado del Arranque seguro.
De las otras vulnerabilidades que se dieron a conocer durante el transcurso de estos días y que se destacan de entre otras, están las siguientes:
- CVE-2022-2588: Una vulnerabilidad en la implementación del filtro cls_route provocada por un error por el cual, al procesar un descriptor nulo, el filtro antiguo no se eliminaba de la tabla hash hasta que se borraba la memoria. La vulnerabilidad ha estado presente al menos desde la versión 2.6.12-rc2 (2.6.12-rc2 es la primera versión en Git. La mayor parte del código que git marca como agregado en esta versión es en realidad «prehistórico», es decir, agregado en los días de BitKeeper o antes). El ataque requiere derechos CAP_NET_ADMIN, que se pueden obtener si tiene acceso para crear espacios de nombres de red (espacio de nombres de red) o espacios de nombres de identificadores de usuario (espacio de nombres de usuario). Como solución de seguridad, puede deshabilitar el módulo cls_route agregando la línea ‘install cls_route /bin/true’ a modprobe.conf.
- CVE-2022-2586: una vulnerabilidad en el subsistema netfilter en el módulo nf_tables que proporciona el filtro de paquetes nftables. El problema se debe al hecho de que el objeto nft puede hacer referencia a una lista establecida en otra tabla, lo que da como resultado que se acceda a un área de memoria liberada después de eliminar la tabla. La vulnerabilidad ha estado presente desde la versión 3.16-rc1. El ataque requiere derechos CAP_NET_ADMIN, que se pueden obtener si tiene acceso para crear espacios de nombres de red (espacio de nombres de red) o espacios de nombres de identificadores de usuario (espacio de nombres de usuario).
- CVE-2022-2585: es una vulnerabilidad en el temporizador de CPU POSIX donde, cuando se llama desde un subproceso no líder, la estructura del temporizador permanece en la lista a pesar de borrar la memoria asignada. La vulnerabilidad ha estado presente desde la versión 3.16-rc1.
Cabe mencionar que de las vulnerabilidades descritas ya se han enviado correcciones de errores a los desarrolladores del kernel de Linux y de las cuales ya han llegado algunas correcciones pertinentes en forma de parches.